Javascript web URL的正则表达式,以便也与专用主机匹配
我有下面的正则表达式来匹配Web URL模式,但它没有标识私有主机,例如或。如何修改此正则表达式以匹配该正则表达式Javascript web URL的正则表达式,以便也与专用主机匹配,javascript,java,regex,url,web,Javascript,Java,Regex,Url,Web,我有下面的正则表达式来匹配Web URL模式,但它没有标识私有主机,例如或。如何修改此正则表达式以匹配该正则表达式 ^(以下简称:::)以下:::::(((:)以下以下::::::::::(((:)以下::::::((:)::((:::::(:::[a-zA-zA-Z0---Z0-9-9-9-9-10-9-9-10-10-10-10-10-10-10-10-10-10-10-10-10-9-10-10-10-10-10-10-10-10-10-10-10-10-10-10-9-9-9-9-9-9
^(以下简称:::)以下:::::(((:)以下以下::::::::::(((:)以下::::::((:)::((:::::(:::[a-zA-zA-Z0---Z0-9-9-9-9-10-9-9-10-10-10-10-10-10-10-10-10-10-10-10-10-9-10-10-10-10-10-10-10-10-10-10-10-10-10-10-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-10-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-10-9-10 Z0-9][a-zA-Z0-9-]{0,64}.+(?:(?:aero | arpa | asia | a[cdefgilmnoqrstuwxz]))|(?:biz | b[Abdefghijmnorstvyz])|(?:cat | com | coop | c[acdfghiklmnoruvxyz d]|d[ejkmoz]|(以下::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;g[Ab[Ab[AbdefAbdefAbdefGGGGGGGGGhhhhGGGGGGGhhhhhGGGGGGGGGGGhhhhhhhhGGGGGGGGGGGGGGGGGGGGGGGGGG[[KKK线路]的[Ab[Ab[Ab[Ab[Ab[Ab[Ab[Ab[[[KKKKNNN们们们们们们们们们们们]]| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |[fs]|y[etu]|z[amw]))|(?:(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]).(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0).(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0).(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[0-9])))(?::\d{1,5})?)$Maybe you should consider the following regexes from: “正则表达式食谱第二版”摘自O'reilly第448-450页 适用于Java 7:
\A
(# Scheme
(?<scheme>[a-z][a-z0-9+\-.]*):
(# Authority & path
//
(?<user>[a-z0-9\-._~%!$&'()*+,;=]+@)? # User
(?<host>[a-z0-9\-._~%]+ # Named host
| \[[a-f0-9:.]+\] # IPv6 host
| \[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\]) # IPvFuture host
(?<port>:[0-9]+)? # Port
(?<hostpath>(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?) # Path
|# Path without authority
(?<schemepath>/?[a-z0-9\-._~%!$&'()*+,;=:@]+
(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?)?
)
|# Relative URL (no scheme or authority)
(?<relpath>
# Relative path
[a-z0-9\-._~%!$&'()*+,;=@]+(/[a-z0-9\-._~%!$&'()*+,;=:@]+)*/?
|# Absolute path
(/[a-z0-9\-._~%!$&'()*+,;=:@]+)+/?
)
)
# Query
(?<query>\?[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
# Fragment
(?<fragment>\#[a-z0-9\-._~%!$&'()*+,;=:@/?]*)?
\Z
^([a-z][a-z0-9+\-.]*:(\/\/([a-z0-9\-._~%!$&'()*+,;=]+@)?([a-z0-9\-._~%]+|\[[a-f0-9:.]+\]|\[v[a-f0-9][a-z0-9\-._~%!$&'()*+,;=:]+\])(:[0-9]+)?(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/?[a-z0-9\-._~%!$&'()*+,;=:@]+(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?)?)|([a-z0-9\-._~%!$&'()*+,;=@]+(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)*\/?|(\/[a-z0-9\-._~%!$&'()*+,;=:@]+)+\/?))(\?[a-z0-9\-._~%!$&'()*+,;=:@\/?]*)?(#[a-z0-9\-._~%!$&'()*+,;=:@\/?]*)?$
您将需要不区分大小写的标志(i)
测试1:
测试2:
如果它对你有帮助,请考虑购买这本最优秀的书(食谱意味着你可以使用正则表达式,他们会正确地工作),别忘了接受答案。
伟大的成功伙伴以下是您的正则表达式的描述:
这个正则表达式是错误的。我可以立即看到几个错误:
/
没有被转义,
没有被转义。它不会按照您想要的方式工作。另外,您需要它在Java或Javascript中工作吗?请参阅以下答案以获得帮助:。只需我的两美分…@bezmax,我没有故意包含转义字符以使其相对更简单ead able。在代码中,这些都是转义的。我在寻找Java。您使用了什么工具来生成这个?