RegEx“忽略”量词?

时间:2015-06-17 17:52:03

标签: javascript regex

基本上我有以下字符串:http:/www.-woejfewiofjewow 哪个不允许匹配

我的正则表达式:http://(www\.[^-])?[^-].*

(我用regexr.com检查它。)

问题是,它不使用正则表达式(www\.[^-])?的第一部分,而是使用第二部分:[^-].*

我真的不知道如何解决这个问题,有可能吗?

我正在尝试使用以下格式搜索有效的网址(在这种情况下没有.com):http://www.test http://test

不允许在开头使用连字符(但允许http://www.test-test

我试图找到一个没有前瞻的解决方案

2 个答案:

答案 0 :(得分:3)

我认为你实际上需要一个负面的先行断言。

\bhttp:\/\/(?!www\.-)[^-].*

(?!www\.-)否定前瞻声明双重forward_slashes //一定不能跟www.-

DEMO

答案 1 :(得分:0)

如果你想验证网址,这个正则表达式会更好地匹配网址:

http:\/\/(?:www\.)?(?:[a-zA-z0-9]+)\.(?:[a-z]){2,3}

允许这些网址:

http://www.woejfewiofjewow.net
http://www.woejfewiofjewow.ly

这是不允许的:

http://www.woejfewiofjewow.neta
http://www.woejfewiofjewow.n

甚至是

http://www.-woejfewiofjewow.net