我有以下代码:
public class testMatch {
public static void main(String[] args) {
String dummyMessage = "asdfasdfsadfsadfasdf 3 sdfasdfasdfasdf";
String expression = "3";
if (dummyMessage.matches(expression)){
System.out.println("MATCH!");
} else {
System.out.println("NO MATCH!");
}
}
}
我希望这是一次成功的匹配,因为 dummyMessage 包含表达式 3,但当我运行此代码片段时,代码会打印 NO MATCH!
我不明白我做错了什么。
好吧,停止回答! .*3.*有效 这是我在一些实时代码中遇到的问题的过度简化,正则表达式是可配置的,到目前为止,匹配整个字符串一直没问题,我现在必须匹配字符串的一部分,并想知道为什么它不是不工作。
最佳答案
它匹配整个字符串,即像大多数其他正则表达式实现中的 ^3$
一样。所以 3
不匹配,例如333
或您的字符串。但 .*3.*
可以完成这项工作。
但是,如果您只想测试字符串中是否包含“3”,则根本不需要正则表达式。请改用 dummyMessage.contains(expression)
。
关于java - 为什么这个字符串与这个正则表达式不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360580/