Java正则表达式匹配不起作用

时间:2015-06-20 10:25:12

标签: java regex

我正在尝试使用java regex匹配字符串,但我的匹配失败。下面的代码可能是什么问题?

String line = "Copy of 001";

boolean b = Pattern.matches("001", line);

System.out.println("value is : "+b);

输出值

value is : false

2 个答案:

答案 0 :(得分:1)

matches()测试整个字符串是否与正则表达式匹配。它没有。请改用Matcher.find()。或者只使用String.contains(),因为您不需要正则表达式来匹配文字字符序列。

答案 1 :(得分:1)

matches将匹配整个字符串。请改用Matcherfind()方法:

boolean b = Pattern.compile("001").matcher(line).find();

或者让你的模式更灵活,并允许它有一些前缀为" 001"。例如:

".*001"

对于这个简单的事情,但是,模式是一种矫枉过正,而简单的indexOf将更有效地完成工作:

boolean b = line.indexOf("001") > -1;