gpt4 book ai didi

Java 正则表达式 : How to match a string if its not consisting a list of certain top level domains

转载 作者:行者123 更新时间:2023-12-02 02:48:32 25 4
gpt4 key购买 nike

我正在尝试构建一个正则表达式,在其中尝试过滤网址,并且只有那些未在我的正则表达式中给出的网址才会产生匹配。

如果网址中没有 test1.com 或 test2.com,则应该会导致匹配。

我不想导致匹配的顶级域(test1.com 和 test2.com)始终使用 https 协议(protocol),可以包含子域并在顶级域“.com”之后具有路径。

最后一次尝试如下,但仍然不起作用......

https?://([a-z0-9]+[.])((test1)|(test2))[.](com)/.*

regexplanet 上的结果:

https://abc.test1.com/test.htm 

==>匹配

www.google.com

==> 不匹配

https://123.test2.com/test.html 

==> 匹配

https://test2.com/test.html

==> 不匹配

我是否需要编写正则表达式,使字符串中没有 test1.com 和 test2.com 域的所有内容都能匹配?

最佳答案

这种模式应该有效:

^((?!test1\\.com|test2\\.com).)*$

尝试一下:

System.out.println(Pattern.matches("^((?!test1\\.com|test2\\.com).)*$", "https://abc.test1.com/test.htm"));
System.out.println(Pattern.matches("^((?!test1\\.com|test2\\.com).)*$", "www.google.com"));
System.out.println(Pattern.matches("^((?!test1\\.com|test2\\.com).)*$", "https://123.test2.com/test.html"));
System.out.println(Pattern.matches("^((?!test1\\.com|test2\\.com).)*$", "https://test2.com/test.html"));

结果:

false
true
false
false

关于Java 正则表达式 : How to match a string if its not consisting a list of certain top level domains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44199260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com