有轻微的正则表达式问题。我写了下面的代码来检查字符串中是否包含一个单词。
boolean matches = Pattern.matches("\\b" + Pattern.quote(item.name) + "\\b", nap.code);
item.name将是“half”之类的东西 nap.code将类似于“int halfOfFour(){return half(4);}”
然而,我的模式匹配返回false ...我在这里做错了什么?
另外......如果单词包含在字符串中,是否仍然会返回false?
答案 0 :(得分:3)
我认为模式匹配将匹配整个字符串,而不仅仅是它的一部分。所以前缀为。*和后缀为。*或其他。
分别使用模式和匹配,然后在匹配器中使用“find()”来查找子匹配
答案 1 :(得分:1)
Java.lang.String.contains()
方法不会做你想要的吗?
boolean contains = nap.code.contains(item.name);
编辑:要仅在单词出现时返回true,使用\ W模式(非单词字符)可以帮助您:
\W*(YOUR_WORD)\W*