繁体   English   中英

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

[英]Matching String regular expression in java?

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

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

谢谢!

所以你的正则表达式是"\\\\*" ,这只是意味着字符* 这里的replaceAll()将用.*替换string2所有*字符。

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

正则表达式“\\ *”仅表示' ',当通过replaceAll() 应用于string2 = SAMPLE时 ,string2变为SAMPLE。*并且这又是匹配器()匹配器使用的正则表达式。

“SAMPLE。*”只接受一切后跟“SAMPLE”

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

类似地,“SAMPLE”,“SAMPLE 123SSS”,“SAMPLE”等将匹配。 但是,“SAMPLE STRING”与模式“SAMPLE。*”不匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM