我有以下java代码行。
String string1 = "SAMPLE STRING";
String string2 = "SAMPLE*";
string2 = string2.replaceAll("\\*",".*").trim().toUpperCase();
if(string1.matches(string2)){
System.out.println("true");
}else{
System.out.println("false");
}
这里我不明白这里的正则表达式意思。这是什么意思?有人可以帮帮我吗?
谢谢!
答案 0 :(得分:2)
所以这里的正则表达式是"\\*"
,它只是意味着字符*
。这里的replaceAll()
会将*
中的所有string2
字符替换为.*
。
这是人们使用简化正则表达式(例如用于匹配文件的正则表达式,例如*.exe
)并将其转换为PCRE regex(这是Java中使用的正则表达式)的常见替换。 / p>
答案 1 :(得分:0)
正则表达式“\ *”仅表示'',当通过replaceAll()应用于string2 = SAMPLE 时,string2变为SAMPLE。*并且这又是Matcher用于match()的正则表达式。
“SAMPLE。*”只接受一切后跟“SAMPLE”
因此,“SAMPLE STRING”匹配“SAMPLE。*”。
类似地,“SAMPLE”,“SAMPLE 123SSS”,“SAMPLE”等将匹配。 但是,“SAMPLE STRING”与模式“SAMPLE。*”
不匹配