gpt4 book ai didi

java - 用于匹配以模式开头但不以模式结尾的字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-01 08:12:26 26 4
gpt4 key购买 nike

给定一个网址,我必须匹配该网址以特定域开头而不以特定模式结尾。
例如,
给定一个网址列表,我想匹配以 "http://www.google.com/""http://www.facebook.com/"< 开头的网址 且不以 ".jpg"".bmp"".png"

结尾

我尝试过类似的方法

^(http://www\.google\.com/|http://www\.facebook\.com/).*(\.(?!png)|(?!bmp)|(?!jpg))$

但它似乎不起作用..其中有任何错误吗?或者有什么替代方法吗?

最佳答案

类似于 (?!png)$一般来说,是毫无意义的;它的意思是“不是后跟 png 的位置,并且位于字符串的末尾”,但当然永远不会跟随字符串的末尾通过png无论如何,所以(?!png)$相当于 $ 。 (你明白我的意思吗?)

幸运的是,Java 正则表达式支持零宽度lookbehind断言,因此您可以编写:

^http://www\.(google|facebook)\.com.*(?<!\.(png|bmp|jpg))$

哪里(?<!...)表示“之前不存在 ... 的位置”。 (参见the Javadoc for java.util.regex.Pattern 。)

关于java - 用于匹配以模式开头但不以模式结尾的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16207434/

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