我有一个字符串和一个简单的模式(带有通配符的字符串)。当我使用match
函数时,我希望它为我的文本返回true
,但它不会返回false。
String text = "test_1_2_3";
String pattern = "test_*"
text.matches(pattern);//this returns false
答案 0 :(得分:2)
答案 1 :(得分:1)
pattern = "test_*"
表示"test"
,0或更多"_"
答案 2 :(得分:1)
由于您的test_*
模式与Matcher#matches
相结合,将匹配整个输入(即从开始到结束),符合以下条件:
test
_
或更多的实例结束(此处为贪婪量化)。 在这种情况下,使用Matcher#find
会返回true
,因为它会与部分test_
匹配。
因此,您的matches
调用将使用给定的true
返回Pattern
,其输入如下:
test_
test__
见API。
答案 3 :(得分:0)
您的正则表达式将匹配测试,然后是零或更多' _'字符。 我想你想要这个:
String text = "test_1_2_3";
String pattern = "test_.*";