这是代理的正则表达式,如果我将其添加到代理中:
(.*\.|)(abc|google)\.(org|net)
我的代理将不会传输abc.org
,abc.net
,google.org
,google.net
的流量。
如何编写与此正则表达式相反的正则表达式?我的意思是只传输abc.org
,abc.net
,google.org
,google.net
的流量。
EDIT-01
我的想法只是想传播abc.org
或www.abc.org
,我该怎么办?
答案 0 :(得分:1)
尝试一下:
^(?!(www\.)?(?:abc|google)\.(?:net|org)).*
演示:https://regex101.com/r/WOnFx8/3/
我使用?!
来反转您的正则表达式的匹配。这样,它将匹配除这四个特定域以外的任何域。
另一种方法是使用此代码在所需域之前包含所有内容:
^(?!(.*\.|)(?:abc|google)\.(?:net|org)).*
答案 1 :(得分:1)
您编写的正则表达式
(。* \。|)(abc | google)\。(org | net)
表示任何字符串都是abc.org,gooogle.org,abc.net,google.net中的一个,其可选的前缀字符串以点(。)结尾。 就像:test.google.org,sub.abc.net,...
我认为您想匹配test.yahoo.com之类的字符串,而不是test.google.org。如果您可以使用负面的前瞻性,那就是答案:
^ (。* \。|)(?!(abc | google)\。(org | net))\ w + \。\ w + $
说明:
答案 2 :(得分:0)
我将假设您已经提前,如果可以的话,您可以简单地使用-
(^.*?\.(?!(abc|google))\w+\.(?:org|net)$)
演示-https://regex101.com/r/5eC41R/3
这是-
.
)abc
或google
.
)org
或net
请注意,由于它是先行方式,因此与其他正则表达式匹配项相比,它会变慢