RegExp将子域排除在匹配范围之外

时间:2019-03-26 23:13:02

标签: php sql regex perl

我的RegExp以下

[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=][A-Z0-9]{3,10})

它匹配域及其子域,并且还需要在地址中提供参数,但是,我希望能够从匹配中排除某些子域。 我尝试使用否定的Lookhead来实现此目的,但没有成功。

^((?!(domain|orsubdomain)).)*$

应与模式匹配的文本:

nicesite.abc.com/abcs

nicesite.com/abcs

并且不应该匹配:

niceDomain.com/abcs

hello.orsubdomain.com/abcs

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试一下:

\b(?!.*\.?(domain|orsubdomain)\/?.*)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]

至少在您的示例中有效!