0

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

在这里我不明白正则表达式的含义。这是什么意思?谁能帮帮我吗?

谢谢!

4

2 回答 2

2

因此,您的正则表达式"\\*"仅表示 character *。这里将用替换replaceAll()所有*字符。string2.*

这是让人们使用简化的正则表达式(例如用于匹配文件的正则表达式,例如*.exe)并将其转换为PCRE 正则表达式的常见替换,这是 Java 中使用的正则表达式。

于 2012-10-19T12:01:38.483 回答
0

正则表达式“\*”仅表示 ' ',当通过 replaceAll() 应用于 string2 = SAMPLE 时,string2 变为 SAMPLE.*,这又是 Matcher 用于 match() 的正则表达式。

"SAMPLE.*" 只接受后面跟着 "SAMPLE" 的所有内容

因此,“SAMPLE STRING”匹配“SAMPLE.*”。

同样,“SAMPLE”、“SAMPLE 123SSS”、“SAMPLE”等也会匹配。但是,“SAMPLE STRING”与模式“SAMPLE.*”不匹配

于 2012-10-19T19:06:45.537 回答