我需要一个能够识别纯文本中所有网址的网址格式。现在我有一个在Java中工作正常(使用Pattern): (“(@)(HTTP(S):???//)[A-ZA-Z_0-9 \ - ] +(\ \ W [A-ZA-Z_0-9 \ - ] +)+(/ [#&安培;?\ n \ - = \ + \%/ \,\ W] +)“)
它识别大多数网址,例如:
www.aaa.com
aaa.com
www.aaa.com/abcd/asdf?a=12
但它无法识别端口号的网址,如www.aaa.com:8000或www.aaa.com:8000/asdf
任何正则表达式专家都可以帮助我解决这个问题,使上述模式识别带有端口号的URL吗?
答案 0 :(得分:0)
我猜你可以挤进(:\d+)?
# (@)?(http(s)?://)?[a-zA-Z_0-9\-]+(\.\w[a-zA-Z_0-9\-]+)+(:\d+)?(/[#&\n\-=?\+\%/\.,\w]+)?
# "(@)?(http(s)?://)?[a-zA-Z_0-9\\-]+(\\.\\w[a-zA-Z_0-9\\-]+)+(:\\d+)?(/[#&\\n\\-=?\\+\\%/\\.,\\w]+)?"
( @ )?
(
http
( s )?
://
)?
[a-zA-Z_0-9\-]+
( \. \w [a-zA-Z_0-9\-]+ )+
( : \d+ )?
( / [#&\n\-=?\+\%/\.,\w]+ )?