Regex可以在其他引擎中工作,但不能在Java模式/匹配器中工作

Regex可以在其他引擎中工作,但不能在Java模式/匹配器中工作,java,regex,Java,Regex,我不明白为什么这个正则表达式不起作用,我已经在php和其他正则表达式引擎中测试过它,在那里它工作得很好,并且匹配“AA” 旁注:我有一个拆分/数组二进制搜索方法,用于对字符串执行IN_SET/NOT_IN_SET搜索。这只是一个示例,在将regex作为另一个比较选项实现之前,我需要开始工作。matches()验证整个字符串。您想改用find() 从API: matches() 尝试根据图案匹配整个区域 -- 以及: find() 尝试查找与模式匹配的输入序列的下一个子序列 -- matches(

我不明白为什么这个正则表达式不起作用,我已经在php和其他正则表达式引擎中测试过它,在那里它工作得很好,并且匹配“AA”

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

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

从API:

matches()
尝试根据图案匹配整个区域

--

以及:

find()
尝试查找与模式匹配的输入序列的下一个子序列

--

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

从API:

matches()
尝试根据图案匹配整个区域

--

以及:

find()
尝试查找与模式匹配的输入序列的下一个子序列

--


Matcher
根据模式匹配整个区域。使用
find()。使用
find()?或者长字符串的这一部分?
(^ |,)
可以重新编写为
^,
,对吗?还是长串的这一部分?
Pattern p = Pattern.compile("(^|,)AA(,|$)");

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

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