gpt4 book ai didi

java - 在非分隔字符串中使用通配符定位字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-04 06:05:56 25 4
gpt4 key购买 nike

我已经检查了我可以在这里找到的每一个帖子,但无法弄清楚这一点。

我有一个看起来像这样的字符串:“ABC1234598901AC”

我正在尝试使用正则表达式来匹配字符串中的“5989”,但即使其中一个字符不同,我也希望能够匹配该字符串。

为简化起见,假设我在字符串中搜索“59(不是 8 的随机字符)9”。

现在这是我的正则表达式:“59[^8]9”,但是当我在 Java 中使用 Matcher 时,它根本不匹配。

这是我用来测试的代码:

Matcher test = Pattern.compile("59[^8]9").matcher("ABC1234598901AC");

if (test.matches())

{

System.out.println(test.start());

System.out.println(test.end());

}

Test.matches() 永远不会评估为真。

任何帮助表示赞赏,谢谢!

最佳答案

您要使用 test.find() ,不是 test.matches() .

Matcher.matches() 要求您的模式匹配整个输入(因此您需要用 .* 包围该模式才能匹配),而 Matcher.find() 在输入字符串中搜索与您的模式匹配的第一个(然后是后续)子字符串。

关于java - 在非分隔字符串中使用通配符定位字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8351602/

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