Java 正則表達(dá)式

正則表達(dá)式定義了字符串的模式,可以用來搜索、編輯或處理文本。
正則表達(dá)式可以用來搜索、編輯或處理文本。
Java 正則表達(dá)式和 Perl 的是最為相似的。

java.util.regex 包主要包括以下三個類:

  • Pattern 類:
    pattern 對象是一個正則表達(dá)式的編譯表示。Pattern 類沒有公共構(gòu)造方法。要創(chuàng)建一個 Pattern 對象,你必須首先調(diào)用其公共靜態(tài)編譯方法,它返回一個 Pattern 對象。該方法接受一個正則表達(dá)式作為它的第一個參數(shù)。
  • Matcher 類:
    Matcher 對象是對輸入字符串進(jìn)行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構(gòu)造方法。你需要調(diào)用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。
  • PatternSyntaxException:
    PatternSyntaxException 是一個非強(qiáng)制異常類,它表示一個正則表達(dá)式模式中的語法錯誤。

捕獲組

捕獲組是把多個字符當(dāng)一個單獨(dú)單元進(jìn)行處理的方法,它通過對括號內(nèi)的字符分組來創(chuàng)建。
例如,正則表達(dá)式 (dog) 創(chuàng)建了單一分組,組里包含"d","o",和"g"。
捕獲組是通過從左至右計算其開括號來編號。例如,在表達(dá)式((A)(B(C))),有四個這樣的組:

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)
    可以通過調(diào)用 matcher 對象的 groupCount 方法來查看表達(dá)式有多少個分組。groupCount 方法返回一個 int 值,表示matcher對象當(dāng)前有多個捕獲組。
    還有一個特殊的組(group(0)),它總是代表整個表達(dá)式。該組不包括在 groupCount 的返回值中。

實(shí)例

下面的例子說明如何從一個給定的字符串中找到數(shù)字串:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
    public static void main( String args[] ){
 
      // 按指定模式在字符串查找
      String line = "This order was placed for QT3000! OK?";
      String pattern = "(\\D*)(\\d+)(.*)";
 
      // 創(chuàng)建 Pattern 對象
      Pattern r = Pattern.compile(pattern);
 
      // 現(xiàn)在創(chuàng)建 matcher 對象
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Found value: " + m.group(0) );
         System.out.println("Found value: " + m.group(1) );
         System.out.println("Found value: " + m.group(2) );
         System.out.println("Found value: " + m.group(3) ); 
      } else {
         System.out.println("NO MATCH");
      }
   }
}
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000
Found value: ! OK?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.正則表達(dá)式介紹 正則表達(dá)式算起來也是一個很龐大的語言系統(tǒng),在所有的開發(fā)語言中基本都支持正則表達(dá)式,它可以很方便...
    babybus_superdo閱讀 2,673評論 3 6
  • 正則表達(dá)式乍一看上去是一堆繁瑣的、無規(guī)律的、令人頭大的字符串,但是當(dāng)你了解他之后,你就會知道它的強(qiáng)大。很多程序設(shè)計...
    iDaniel閱讀 2,945評論 1 18
  • 花,開了一季,靜靜飄落塵埃,姹紫于嫣然,卻在驀然回首時,敲成了一首首詩!山一程,水一程,一邊拾起,卻一邊丟棄,灑滿...
    鐵桿同學(xué)閱讀 233評論 0 2
  • 西江月 長空素帶飄舞,萬里絲絲細(xì)煙。如鹽 如絮如新棉,又似霜雪白面。 雪原拋起哈達(dá),紅胡紗麗披肩, 同享涼熱七月天...
    仙翁閱讀 250評論 0 0
  • 文檔測試 對于Python這種腳本語言來說,有很多情況都可以在命令行里直接執(zhí)行,所以可以通過編寫Python文件直...
    lusoer閱讀 715評論 0 0

友情鏈接更多精彩內(nèi)容