📅  最后修改于: 2023-12-03 14:59:28.473000             🧑  作者: Mango
在Bash中,可以使用正则表达式来匹配URL,这在网站爬虫、网络安全等方面非常有用。以下是一些常见的Bash中URL的正则表达式。
^https?\:\/\/([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,63})\:?([0-9]{0,5})?(\/[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]*)?$
这个正则表达式可以匹配http和https协议下的URL,包括主机名、端口号和路径。例如:
https://www.google.com/search?q=regex
http://github.com:1234/user/repo
其中,^https?\:\/\/
表示以http或https协议开头,([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,63})
表示匹配合法的域名,\:?([0-9]{0,5})?
表示可选的端口号,(\/[a-zA-Z0-9\-\._\?\,\'\/\\\+&%\$#\=~]*)?
表示可选的路径。
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$
这个正则表达式可以匹配常见的邮件地址格式,例如:
example@example.com
username+tag@example.co.uk
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
这个正则表达式可以匹配IPv4地址,例如:
192.168.1.1
10.0.0.1
\/([^\/]+\.[a-zA-Z0-9]+)(\?.*)?
这个正则表达式可以匹配URL中的文件名,例如:
https://www.example.com/files/document.pdf
http://example.com/images/logo.png?v=2
其中,\/([^\/]+\.[a-zA-Z0-9]+)
表示匹配URL中最后一个斜杠后的文件名,(\?.*)?
表示匹配文件名后的查询参数(可选)。
以上是一些常见的Bash中URL的正则表达式,可以根据需要进行更改和优化。