也许有人可以用正则表达来帮助我。这个不会工作:
public static void main(String[] args){
String pattern = "(?i).*a[\\s-\\.]?nton.*";
String text = "a-nton vom 27.2.2012";
if (pattern.matches(text)){
System.out.println("FOUND");
}else{
System.out.println("NOT FOUND");
}
}
如果文本包含以下单词之一,则正则表达式应为true:
a-nton OR 一个nton OR 安东
这个词之前和之后可以是任何文字
但上面的模式将是“未找到”
答案 0 :(得分:4)
将if (pattern.matches(text)) {
更改为if (text.matches(pattern)) {
。
匹配方法检查调用的字符串中的模式传递给方法,因此在文本上调用它并传递它的模式。如果您希望将来使用更高级的正则表达式,您可能还需要查看Pattern
和Matcher
类。
请参阅matches(String)方法中的javadoc:
参数:regex - 此字符串所属的正则表达式 匹配