我已经看过各种文章,展示了如何匹配网址。但我的情况与通常的URL匹配有点不同。
This就是这样一个对我不起作用的正则表达式
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/
我的要求:
我的要求是我有这样的字符串
userlist.2011.text_mediafire.com ,
userlist.2011.text_http://www.mediafire.com ",
userlist.2011.text_http://mediafire.com &#34 ;,
userlist.2011.text.www.mediafire.com
现在,我想匹配 mediafire.com 以及(如果存在)" http://www.
"和" www。"因此,我希望设置的约束是TLD左侧的所有字符串(在这种情况下,' .com')应该记录到像'"_-
等的特定字符列表中
除了基本的/(.*)\.(com|net|org|info)/
之外,我无法继续前进。这显然是错误的。
答案 0 :(得分:1)
使用以下正则表达式并从组索引1中获取所需的字符串。
(?:http:\/\/)?(?:www\.)?([^'"_.-]*\.(?:com|net|org|info)\b)
答案 1 :(得分:0)
您需要'$'
来匹配字符串的结尾。如果您关心在特殊字符之前捕获整个字符串,则还需要匹配字符串'^'
的开头。
/^(.*)\.(([^\.]+)\.(com|net|org|info))$/