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 を意味するもの*です。here は、のすべての文字を に置き換えreplaceAll()ます。*string2.*

これは、単純化された正規表現 (ファイルの照合に使用されるものなど) を使用し、それを Java で使用される正規表現であるPCRE regex*.exeに変換するための一般的な置き換えです。

于 2012-10-19T12:01:38.483 に答える
0

正規表現"\*" は単に ' ' を意味します。string2 = SAMPLEに replaceAll() によって適用されると、string2 は SAMPLE.* になり、これも match() の Matcher によって使用される正規表現です。

「SAMPLE.*」は、「SAMPLE」が後に続くすべてを単純に受け入れます。

したがって、「SAMPLE STRING」は「SAMPLE.*」と一致しました。

同様に、「SAMPLE」、「SAMPLE 123SSS」、「SAMPLE」などが一致します。しかし、「SAMPLE STRING」はパターン「SAMPLE.*」と一致しません。

于 2012-10-19T19:06:45.537 に答える