在参照者分析中取反正则表达式

时间:2019-01-15 11:50:19

标签: regex regex-negation

除了域(完整URL https://www.example.com/AnySubDir)外,我想在引荐来源网址中找到任何域。

当我使用否定表达式时,任何字符串都匹配,为什么?

(?! (^Referer?:\shttps?:\/\/([^\/]+\.)?www\.example\.com(\/|$)(.*)) )

1 个答案:

答案 0 :(得分:0)

您的正则表达式仅由负{a}组成,(?! (^Referer在不匹配空格时会成功,后跟字符串Referer的开头等。这将在很多位置匹配。

您可以做的是在正则表达式的开头移动^并使用否定的前瞻来断言您的字符串不是以url开头。

^(?!Referer: https://www\.example\.com).*

Regex demo

没有列出编程语言,但是另一种解决方法是检查字符串是否以Referer: https://www.example.com开头