2012-10-19 73 views
0

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

這裏我不明白這裏的正則表達式的含義。這是什麼意思?誰能幫幫我嗎?

謝謝!

+2

您可以通過以下文檔: - ['Pattern Class'](http://docs.oracle.com/javase/7/文檔/ API/JAVA/util的/正則表達式/ Pattern.html) –

回答

2

所以你的這個正則表達式是"\\*",它只是表示字符*。這裏的replaceAll()將用.*替換string2中的所有*個字符。

這是人們使用簡化正則表達式(如用於匹配文件的正則表達式,例如*.exe)的常見替代方法,並將其轉換爲PCRE regex,這是用於Java的正則表達式。

0

正則表達式「\ *」僅僅意味着'',當通過replaceAll()應用於string2 = SAMPLE時,string2變成了SAMPLE。*,這又是Matcher用於匹配()的正則表達式。

「SAMPLE。*」 簡單地接受一切,其次是 「SAMPLE」

因此, 「SAMPLE STRING」 匹配 「的樣本。*」。

類似地,「樣品」,「樣品123SSS」,「樣品」等將匹配。 但是,「SAMPLE STRING」不匹配模式「SAMPLE。*」