【发布时间】:2018-06-01 07:56:41
【问题描述】:
我遇到了一个简单的问题,我想检查是否有任何单词:he, be, de 出现在我的文本中。
所以我使用“|”创建了模式(存在于代码中)象征或 然后我匹配我的文字。但是比赛给了我错误的结果(在打印声明中)。
我尝试使用正则表达式搜索在 Notepad++ 中进行相同的匹配,它在那里工作,但在 Java 中给出了 FALSE(不匹配)。 C
public class Del {
public static void main(String[] args) {
String pattern="he|be|de";
String text= "he is ";
System.out.println(text.matches(pattern));
}
}
谁能建议我做错了什么。 谢谢
【问题讨论】:
-
String.matches(regex)检查整个字符串是否匹配,而不仅仅是开头。 -
matches方法尝试匹配整个字符串,而不是字符串的一部分。 -
您也可以使用
[hbd]e(但同样不能使用matches)。请注意:您还必须添加单词分隔符,否则它将匹配(我的意思是“查找”)bobshebob中的he和dipdedipdedap中的de。 -
嗨@usr2564301,你为什么说它是重复的。试图将文本与模式匹配的人如何得出结论认为我应该寻找“查找”v/s 匹配差异。
-
?因为它回答了这个问题?我所要做的就是搜索
java match regex;这个 Stack Overflow 答案排在首位。