Regex 负前瞻性工作

Regex 负前瞻性工作,regex,negative-lookahead,Regex,Negative Lookahead,各位StackExchange用户好 我正在尝试使用类似于Flex的东西创建RegEx,以阻止Angler EK在我们的代理上的有效负载网站。问题是我不能使用负面表情。“否定”的唯一形式是否定字符集,即:[^a-zA-Z0-9-/]等 我的同龄人创造了以下内容,但其中包括负面形象,这让它几乎毫无用处。有人能提供创造性的工作吗?我已经包含了一个我们需要阻止的URL的净化示例 ^http:\/\/(?!www)[^\x2f]+\/(?![A-Z]{2,}\/|[A-Z][a-z]{2,}\/|[a-

各位StackExchange用户好

我正在尝试使用类似于Flex的东西创建RegEx,以阻止Angler EK在我们的代理上的有效负载网站。问题是我不能使用负面表情。“否定”的唯一形式是否定字符集,即:[^a-zA-Z0-9-/]等

我的同龄人创造了以下内容,但其中包括负面形象,这让它几乎毫无用处。有人能提供创造性的工作吗?我已经包含了一个我们需要阻止的URL的净化示例

^http:\/\/(?!www)[^\x2f]+\/(?![A-Z]{2,}\/|[A-Z][a-z]{2,}\/|[a-z]{3,}\/|TextHere\/)(?:[a-z0-9A-Z_\.-]+\/)*\?[a-z]=(?![0-9,\.]{6,}&|[0-9]{2,32}&)(?:[^\x3d]{2,32}=[^\x26]*&[a-z]=){2,}[^\x2f]{2,32}$ 

meow://s4mpl3.s4mpl3.top/?l=&k=2OuX2&p=ESexoc&m=&i=cZzwP0gj_&j=kssjA2k&t=yNQx2&s=&a=HruxaXM0&e=ka5DwfIx

您试图从错误的角度解决此问题。尝试缩小允许的URL的范围,而不是列出所有不允许的URL格式。过滤出适当格式的URL后,再通过一些regexen运行它们,这些regexen定位特定的黑名单字符序列(如
www
或19个已确认的恶意站点)


因为即使你也不确定这些安全的URL是什么,在你弄清楚你想要允许什么之前,我也无法帮助你创建这个正则表达式。

这是什么风格的正则表达式?或者使用这个正则表达式的是什么编程语言?如果不能使用负lookaheads,可能还有其他限制。Cisco IronPort上使用的Flex如果在
If
表达式中使用,是否可以使用正lookahead并否定结果?我查找了它,正则表达式的风格是“POSIX ERE”。它不支持任何类型的
(?…)
语法。我在@4castle:的第290-291页找到了规范。这几乎禁止了纯正则表达式解决方案。代理上的隐式拒绝似乎是个坏主意。不过我很感激你的回答!我不明白你的意思。它隐含了什么?