gpt4 book ai didi

java - 正则表达式适用于其他引擎,但不适用于 Java Pattern/Matcher

转载 作者:行者123 更新时间:2023-11-29 03:53:25 25 4
gpt4 key购买 nike

我不明白为什么这个正则表达式不起作用,我已经在 php 和其他正则表达式引擎中测试了它,它可以正常工作并匹配“,AA,”。

Pattern p = Pattern.compile("(^|,)AA(,|$)");

Matcher m = p.matcher("A,B,AA,C,D");

//assigns as false
boolean matches = m.matches();

旁注:我有一个拆分/数组二进制搜索方法,用于对字符串执行 IN_SET/NOT_IN_SET 搜索。这只是在将正则表达式作为另一个比较选项实现之前我需要开始工作的示例。

最佳答案

matches() 验证整个字符串。您想改用 find()

来自 API:

matches()

Attempts to match the entire region against the pattern.

-- http://download.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#matches()

和:

find()

Attempts to find the next subsequence of the input sequence that matches the pattern.

-- http://download.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#find()

关于java - 正则表达式适用于其他引擎,但不适用于 Java Pattern/Matcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676068/

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