这个正则想匹配网址,类似于这种的(有域名,有端口号) http://second.www.baidu.com:8080 和 second.www.baidu.com:8080,取其中 //后或者开头后的部分。你这个正则写的又有点问题,其中的//应该加上转义字符后变成 \/\/, (\w)+这句的意图应该写成\w+. 给你改写了一下 (?<=\/\/|^)((\w+\.)+\w+)(\:(\d+)) 分段解释下: (?<=\/\/|^)要求匹配的目标前面必须有 //或者匹配的目标在最前面。 (\w+\.)+\w+匹配 文本.一次或多次 + 文本,形如 abcd.efgh abcd.efgh.izk abcd.efgh.izk.sfds都能被匹配上, abcd单独不能被匹配 \:(\d+) 匹配 :多个数字, 即端口号
这个正则想匹配网址,类似于这种的(有域名,有端口号)
http://second.www.baidu.com:8080
和second.www.baidu.com:8080
,取其中//
后或者开头后的部分。你这个正则写的又有点问题,其中的
//
应该加上转义字符后变成\/\/
,(\w)+
这句的意图应该写成\w+
.给你改写了一下
(?<=\/\/|^)((\w+\.)+\w+)(\:(\d+))
分段解释下:
(?<=\/\/|^)
要求匹配的目标前面必须有//
或者匹配的目标在最前面。(\w+\.)+\w+
匹配文本.
一次或多次 + 文本,形如abcd.efgh
abcd.efgh.izk
abcd.efgh.izk.sfds
都能被匹配上,abcd
单独不能被匹配\:(\d+)
匹配:多个数字
, 即端口号