Java字符串正则表达式匹配失败与换行?

时间:2011-10-21 09:02:30

标签: java android regex

StringBuilder testSB = new StringBuilder();
String testString = "error 1:";
int times = 0;
while(times<=10){
    testSB.append(testString +"\n");
    times++;
}

String testResponse  = "error 1:";
String realResponse = testSB.toString();

Log.i("REAL", String.valueOf(realResponse.matches(".*error.*")));
Log.i("TEST", String.valueOf(testResponse.matches(".*error.*")));

“real”字符串不匹配,而“test”字符串则匹配。如果我从while块中删除+"\n",则它与regexp匹配。我以为.*也适用于新行?

2 个答案:

答案 0 :(得分:6)

默认情况下,

.与换行符不匹配,但如果您在正则表达式的开头添加(?s)开关,则会出现。

答案 1 :(得分:1)

.是否与行终止符匹配取决于是否激活了MULTILINE模式。 请参阅java.util.regex.Pattern的java文档。