Java 正則表達式

正則表達式定義了字符串的模式,可以用來搜索哼蛆、編輯或處理文本构拳。
正則表達式可以用來搜索咆爽、編輯或處理文本。
Java 正則表達式和 Perl 的是最為相似的置森。

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

  • Pattern 類:
    pattern 對象是一個正則表達式的編譯表示斗埂。Pattern 類沒有公共構造方法。要創(chuàng)建一個 Pattern 對象凫海,你必須首先調用其公共靜態(tài)編譯方法呛凶,它返回一個 Pattern 對象。該方法接受一個正則表達式作為它的第一個參數(shù)行贪。
  • Matcher 類:
    Matcher 對象是對輸入字符串進行解釋和匹配操作的引擎把兔。與Pattern 類一樣,Matcher 也沒有公共構造方法瓮顽。你需要調用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。
  • PatternSyntaxException:
    PatternSyntaxException 是一個非強制異常類围橡,它表示一個正則表達式模式中的語法錯誤暖混。

捕獲組

捕獲組是把多個字符當一個單獨單元進行處理的方法,它通過對括號內的字符分組來創(chuàng)建翁授。
例如拣播,正則表達式 (dog) 創(chuàng)建了單一分組晾咪,組里包含"d","o"贮配,和"g"谍倦。
捕獲組是通過從左至右計算其開括號來編號。例如泪勒,在表達式((A)(B(C)))昼蛀,有四個這樣的組:

  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)
    可以通過調用 matcher 對象的 groupCount 方法來查看表達式有多少個分組。groupCount 方法返回一個 int 值圆存,表示matcher對象當前有多個捕獲組叼旋。
    還有一個特殊的組(group(0)),它總是代表整個表達式沦辙。該組不包括在 groupCount 的返回值中夫植。

實例

下面的例子說明如何從一個給定的字符串中找到數(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?
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市油讯,隨后出現(xiàn)的幾起案子详民,更是在濱河造成了極大的恐慌,老刑警劉巖陌兑,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沈跨,死亡現(xiàn)場離奇詭異,居然都是意外死亡诀紊,警方通過查閱死者的電腦和手機谒出,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邻奠,“玉大人笤喳,你說我怎么就攤上這事÷笛纾” “怎么了杀狡?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贰镣。 經(jīng)常有香客問我呜象,道長,這世上最難降的妖魔是什么碑隆? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任恭陡,我火速辦了婚禮,結果婚禮上上煤,老公的妹妹穿的比我還像新娘休玩。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布拴疤。 她就那樣靜靜地躺著永部,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呐矾。 梳的紋絲不亂的頭發(fā)上苔埋,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音蜒犯,去河邊找鬼组橄。 笑死,一個胖子當著我的面吹牛愧薛,可吹牛的內容都是我干的晨炕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼毫炉,長吁一口氣:“原來是場噩夢啊……” “哼瓮栗!你這毒婦竟也來了?” 一聲冷哼從身側響起瞄勾,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤费奸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后进陡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愿阐,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年趾疚,在試婚紗的時候發(fā)現(xiàn)自己被綠了缨历。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糙麦,死狀恐怖辛孵,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情赡磅,我是刑警寧澤魄缚,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站焚廊,受9級特大地震影響冶匹,放射性物質發(fā)生泄漏。R本人自食惡果不足惜咆瘟,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一嚼隘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧袒餐,春花似錦飞蛹、人聲如沸须肆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幢炸,卻和暖如春泄隔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宛徊。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工佛嬉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闸天。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓暖呕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苞氮。 傳聞我的和親對象是個殘疾皇子湾揽,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容

  • 1.正則表達式介紹 正則表達式算起來也是一個很龐大的語言系統(tǒng),在所有的開發(fā)語言中基本都支持正則表達式笼吟,它可以很方便...
    babybus_superdo閱讀 2,570評論 3 6
  • 正則表達式乍一看上去是一堆繁瑣的库物、無規(guī)律的、令人頭大的字符串贷帮,但是當你了解他之后戚揭,你就會知道它的強大。很多程序設計...
    iDaniel閱讀 2,591評論 1 18
  • 花撵枢,開了一季民晒,靜靜飄落塵埃,姹紫于嫣然锄禽,卻在驀然回首時潜必,敲成了一首首詩!山一程沟绪,水一程刮便,一邊拾起,卻一邊丟棄绽慈,灑滿...
    鐵桿同學閱讀 147評論 0 2
  • 西江月 長空素帶飄舞恨旱,萬里絲絲細煙。如鹽 如絮如新棉坝疼,又似霜雪白面搜贤。 雪原拋起哈達,紅胡紗麗披肩钝凶, 同享涼熱七月天...
    仙翁閱讀 205評論 0 0
  • 文檔測試 對于Python這種腳本語言來說仪芒,有很多情況都可以在命令行里直接執(zhí)行唁影,所以可以通過編寫Python文件直...
    lusoer閱讀 623評論 0 0