匹配java中的String正则表达式?

时间:2012-10-19 11:56:58

标签: java regex

我有以下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");
            }

这里我不明白这里的正则表达式意思。这是什么意思?有人可以帮帮我吗?

谢谢!

2 个答案:

答案 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。*”

不匹配