在引用分析中否定正则表达式
Negate regex in referer analysis
我想在 referer 中找到任何域,除了我的域(完整 URL https://www.example.com/AnySubDir)。
当我在下面使用否定表达式时,任何字符串都匹配,为什么?
(?! (^Referer?:\shttps?:\/\/([^\/]+\.)?www\.example\.com(\/|$)(.*)) )
您的正则表达式仅包含一个否定前瞻 (?! (^Referer
,当不匹配 space 后跟字符串 Referer 等的开头时,它将成功。这将在很多位置匹配。
你可以做的是在正则表达式的开头移动 ^
并使用否定前瞻来断言你的字符串不以你的 url.
开头
^(?!Referer: https://www\.example\.com).*
没有列出编程语言,但解决此问题的另一种方法是检查字符串是否以 Referer: https://www.example.com
开头
我想在 referer 中找到任何域,除了我的域(完整 URL https://www.example.com/AnySubDir)。
当我在下面使用否定表达式时,任何字符串都匹配,为什么?
(?! (^Referer?:\shttps?:\/\/([^\/]+\.)?www\.example\.com(\/|$)(.*)) )
您的正则表达式仅包含一个否定前瞻 (?! (^Referer
,当不匹配 space 后跟字符串 Referer 等的开头时,它将成功。这将在很多位置匹配。
你可以做的是在正则表达式的开头移动 ^
并使用否定前瞻来断言你的字符串不以你的 url.
^(?!Referer: https://www\.example\.com).*
没有列出编程语言,但解决此问题的另一种方法是检查字符串是否以 Referer: https://www.example.com