如何匹配此字符串中的URL?

时间:2015-05-22 07:00:14

标签: javascript regex

我已经看过各种文章,展示了如何匹配网址。但我的情况与通常的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)/之外,我无法继续前进。这显然是错误的。

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式并从组索引1中获取所需的字符串。

(?:http:\/\/)?(?:www\.)?([^'"_.-]*\.(?:com|net|org|info)\b)

答案 1 :(得分:0)

您需要'$'来匹配字符串的结尾。如果您关心在特殊字符之前捕获整个字符串,则还需要匹配字符串'^'的开头。

/^(.*)\.(([^\.]+)\.(com|net|org|info))$/