下面发布的正则表达式用于提取URL,包括example.com等格式的URL。然而,我希望它只拾取在前面有一个www.或http,https等的URL。换句话说,它应该拾取www.example.com。它应该不会拾取example.com。
((((ht|f)tp(s?))\://)?((www.|[a-zA-Z])([a-zA-Z0-9\-]+\.)([a-zA-Z]{2,8}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*)发布于 2010-01-21 00:02:08
嗯,试一试
(((((ht|f)tp(s?))\://)|(www\.))((|[a-zA-Z])([a-zA-Z0-9-]+.)([a-zA-Z]{2,8}))(\:[0-9]+)*(/($|[a-zA-Z0-9.\,\;\?\'\+&%\$#\=~_-]+))*)
编辑:是的,我并没有真的测试过它。好吧,我也没有测试这个,但我真的很仔细地看了一下;)
(((((ht|f)tp(s?))\://)|(www\.))(([a-zA-Z0-9-]+.)?([a-zA-Z0-9]+\.)([a-zA-Z]{2,8}))(\:[0-9]+)*(/($|[a-zA-Z0-9.\,\;\?\'\+&%\$#\=~_-]+))*)
你应该找一个好的正则表达式测试器。我通常使用Expresso,但也有很多其他的。
发布于 2010-01-21 00:05:27
使用regexp验证URI的格式是否正确--使用RFC3986中的那个。用代码验证它是否合理。尝试将格式良好和合理的检查合并到一个regexp中太难了。请参阅:Need a regex to validating a Url...
发布于 2010-01-21 00:04:56
我修改了你的表达式:
((((ht|f)tp(s?))\://)?((www\.)([a-zA-Z0-9-]+\.)([a-zA-Z]{2,8}))(\:[0-9]+)*(/($|[a-zA-Z0-9.\,\;\?\'\+&%\$#\=~_-]+))*)这里有一个很好的网站来检查你的表情:http://gskinner.com/RegExr/
https://stackoverflow.com/questions/2102727
复制相似问题