0

有一个轻微的正则表达式问题。我写了以下代码来检查一个单词是否包含在字符串中。

boolean matches = Pattern.matches("\\b" + Pattern.quote(item.name) + "\\b", nap.code);

item.name 将类似于 "half" nap.code 将类似于 "int halfOfFour() { return half(4); }"

然而,我的模式匹配返回错误......我在这里做错了什么?

另外...如果单词包含在字符串中,是否无论如何都会使此返回错误?

4

2 回答 2

3

我认为模式匹配将匹配整个字符串而不仅仅是它的一部分。所以前缀 .* 和后缀 .* 或其他东西。

分别使用模式和匹配,然后在匹配器中使用“find()”来查找子匹配

于 2012-08-02T09:24:12.897 回答
1

Java.lang.String.contains()方法不会做你想要的吗?

boolean contains = nap.code.contains(item.name);

编辑:仅当单词存在时才返回 true,使用 \W 模式(非单词字符)应该可以帮助您:

\W*(YOUR_WORD)\W*
于 2012-08-02T09:24:08.837 回答