我正在尝试使用java regex匹配字符串,但我的匹配失败。下面的代码可能是什么问题?
String line = "Copy of 001";
boolean b = Pattern.matches("001", line);
System.out.println("value is : "+b);
输出值
value is : false
答案 0 :(得分:1)
matches()
测试整个字符串是否与正则表达式匹配。它没有。请改用Matcher.find()
。或者只使用String.contains()
,因为您不需要正则表达式来匹配文字字符序列。
答案 1 :(得分:1)
matches
将匹配整个字符串。请改用Matcher
和find()
方法:
boolean b = Pattern.compile("001").matcher(line).find();
或者让你的模式更灵活,并允许它有一些前缀为" 001"。例如:
".*001"
对于这个简单的事情,但是,模式是一种矫枉过正,而简单的indexOf
将更有效地完成工作:
boolean b = line.indexOf("001") > -1;