Regex 如何编写与此正则表达式相反的正则表达式?
这是代理的正则表达式,如果我将其添加到代理中:Regex 如何编写与此正则表达式相反的正则表达式?,regex,Regex,这是代理的正则表达式,如果我将其添加到代理中: (.*\.|)(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,我该怎么办 我假设你有长相头,如果有,那么你可以简单地使用- (^.*?\.
(.*\.|)(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
,我该怎么办 我假设你有长相头,如果有,那么你可以简单地使用-
(^.*?\.(?!(abc|google))\w+\.(?:org|net)$)
演示-
它的作用是-
)abc
或google
org
或net
请注意,由于它是一个前瞻性的,因此与其他正则表达式匹配相比,它会很慢,我将假设您有lookaheads,如果是这样,那么您可以简单地使用-
(^.*?\.(?!(abc|google))\w+\.(?:org|net)$)
演示-
它的作用是-
)abc
或google
org
或net
^(?!(www\.)?(?:abc|google)\.(?:net|org)).*
演示:
我用了
以反转正则表达式的匹配。这样,它将匹配除这4个特定域之外的任何域
另一种方法是使用此代码在所需域之前包含任何内容:
^(?!(.*\.|)(?:abc|google)\.(?:net|org)).*
演示:试试这个:
^(?!(www\.)?(?:abc|google)\.(?:net|org)).*
演示:
我用了
以反转正则表达式的匹配。这样,它将匹配除这4个特定域之外的任何域
另一种方法是使用此代码在所需域之前包含任何内容:
^(?!(.*\.|)(?:abc|google)\.(?:net|org)).*
演示:您编写的正则表达式
(.\.|)abc(谷歌)\.(org|net)
表示任何字符串都是abc.org、gooogle.org、abc.net、google.net中的一个,可选前缀字符串以点(.)
比如:test.google.org,sub.abc.net
我认为您希望匹配test.yahoo.com之类的字符串,但不希望匹配test.google.org。如果您可以使用“消极展望”,则答案如下:
^(.*\.|)(?!(abc |谷歌)\.(org | net))\w+\.\w+$
说明:
- ^和$以确保您的匹配是整个url字符串
- 负面展望是检查url不是像abc.org、abc.net、google.org、google.net这样的东西
- 和\w+\。\w+检查保留的字符串是一种URL类型(类似于yahoo.com等…)
- ^和$以确保您的匹配是整个url字符串
- 负面展望是检查url不是像abc.org、abc.net、google.org、google.net这样的东西
- 和\w+\。\w+检查保留的字符串是一种URL类型(类似于yahoo.com等…)
- 您编写的正则表达式
(.\.|)abc(谷歌)\.(org|net)
表示任何字符串都是abc.org、gooogle.org、abc.net、google.net中的一个,可选前缀字符串以点(.)
比如:test.google.org,sub.abc.net
我认为您希望匹配test.yahoo.com之类的字符串,但不希望匹配test.google.org。如果您可以使用“消极展望”,则答案如下:
^(.*\.|)(?!(abc |谷歌)\.(org | net))\w+\.\w+$
说明:
|
正确吗?将其标记为一个模式错误,如果您删除我正确匹配的abc.org
,abc.net
,google.org
,google.net
,那么您只需编辑代码即可允许来自这些站点的流量您的正则表达式风格是否支持环顾断言?如果没有,那么你可能很难做到你在这里要求的。通常我建议你只使用^(?(.*\)(abc(谷歌)\(org(谷歌))
,但是因为你的基本正则表达式中有一个*
,你不能这样做。你能提供一些你试图匹配的模式类型的例子吗?这个正则表达式也匹配上述域的所有子域。因此,news.abc.org也将提供匹配。除此之外,我认为casualcoder的方法是正确的。您确定double
是正确的吗?将其标记为一个模式错误,如果您删除我正确匹配的abc.org
,abc.net
,google.org
,google.net
,那么您只需编辑代码即可允许来自这些站点的流量您的正则表达式风格是否支持环顾断言?如果没有,那么你可能很难做到你在这里要求的。通常我建议你只使用^(?(.*\)(abc(谷歌)\(org(谷歌))
,但是因为你的基本正则表达式中有一个*
,你不能这样做。你能提供一些你试图匹配的模式类型的例子吗?这个正则表达式也匹配上述域的所有子域。因此,news.abc.org也将提供匹配。除此之外,我认为casualcoder的方法是正确的。似乎abc.net、www.abc.net和其他都不能传输。似乎abc.net、www.abc.net和其他都不能传输。@244boy-hmm,演示符合您的要求吗?如果是这样的话,这可能是您如何实施regex@244boy嗯,这个演示符合你的要求吗?如果是这样的话,可能是如何实现regex的问题