學習Java:正規表示式
學習正規表示式,用Jdk1.4後的java.util.regex
[@more@]模式:
我們來看一些更常用的表示式的種類
文字(Literal):表示式內任何不具有特殊意義的字元都被看作是一個文字,並與自身匹配。
量詞(Quantifier):某些字元或表示式,它們被用來計算一個文字或分組可以在字元序列中出現的次
數,以便該序列與表示式匹配。分組是由圓括號內的一組字元指定的。
? 表示出現一次或根本不出現
* 表示出現零次或一次以上(含一次)
+ 表示出現一次或多次
字元類(Character class):一個字元類就是方括號內的一個字符集,其中,匹配可以是括號內的任意
一個字元。您可以把字元類與量詞結合在一起,例如, [acegikmoqsuwy]* 將是隻包含字母表中奇數字
母的任意字元序列。某些字元類是預先定義的:
d ― 數字(0 到 9)
D -- 非數字
s -- 空白字元,如製表符或換行符
S -- 非空白字元
w -- 單字字元(a 到 z、A 到 Z、0 到 9 以及下劃線)
W -- 非單字字元(其它任意字元)
Posix 字元類(Posix character class):某些字元類僅在用於 US-ASCII 比較時才有效。例如:
p{Lower} ― 小寫字元
p{Upper} ― 大寫字元
p{ASCII} ― 所有 ASCII 字元
p{Alpha} ― 字母字元(p{Lower} 與 p{Upper} 相結合)
p{Digit} ― 從 0 到 9 的數字
p{Alnum} ― 字母數字字元
範圍(Range):使用短線(dash)來指定包括一定範圍字元的字元類。例如, [A-J] 表示從 A 到 J
的大寫字母
否定(Negation):脫字元(^)否定字元類的內容。例如, [^A-J] 表示除 A 到 J 之外的任何字元。
反斜槓字元()在 String 常量中需要轉義。
w+ 與 p{Alnum}+ 類似,但新增了下劃線(_)。
反斜槓( .)代表句點。如果前面沒有反斜槓,單獨一個句點代表任意字元。
p{Alpha}{2, 3} 表示兩個或三個字母字元
--------------------------------------------------------------------------------
java.util.regex是一個用正規表示式所訂製的模式來對字串進行匹配工作的類庫包(其他:如
Jakarta-ORO )
它包括兩個類: Pattern和 Matcher
Pattern 一個Pattern是一個正規表示式經編譯後的表現模式。
Matcher 一個Matcher物件是一個狀態機器,它依據Pattern物件做為匹配模式對字串展開匹配檢查。
一個正規表示式,也就是一串有特定意義的字元,必須首先要編譯成為一個Pattern類的例項,這個
Pattern物件將會使用 matcher()方法來生成一個Matcher例項,接著便可以使用該 Matcher例項以編譯
的正規表示式為基礎對目標字串進行匹配工作,多個Matcher是可以共用一個Pattern物件的。
在java.util.regex包裡,我們僅需生成一個Pattern類,直接使用它的compile()
一個Matcher例項是被用來對目標字串進行基於既有模式(也就是一個給定的Pattern所編譯的正則表
達式)進行匹配查詢的,所有往Matcher的輸入都是透過CharSequence介面提供的,這樣做的目的在於可
以支援對從多元化的資料來源所提供的資料進行匹配工作。
★matches()/lookingAt ()/find():
一個Matcher物件是由一個Pattern物件呼叫其matcher()方法而生成的,一旦該Matcher物件生成,它就可
以進行三種不同的匹配查詢操作:
matches()方法嘗試對整個目標字元展開匹配檢測,也就是隻有整個目標字串完全匹配時才返回真值。
lookingAt ()方法將檢測目標字串是否以匹配的子串起始。
find()方法嘗試在目標字串裡查詢下一個匹配子串。
以上三個方法都將返回一個布林值來表明成功與否。
★replaceAll ()/appendReplacement()/appendTail():
Matcher類同時提供了四個將匹配子串替換成指定字串的方法:
replaceAll()
replaceFirst()
appendReplacement()
appendTail()
使用方式
1。Pattern wordBreakPattern = Pattern.compile("模式");
2。Matcher lineMatcher = linePattern.matcher(需要匹配的字串);
3。Match的函式如find/lookat等,檢查結果
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-953080/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java 正規表示式語法學習Java
- 正規表示式學習
- 正規表示式的學習
- Oracle正規表示式學習Oracle
- Go 正規表示式學習Go
- 正規表示式學習和練習
- 正規表示式學習筆記筆記
- 正規表示式入門學習
- 如何快速學習正規表示式
- 正規表示式學習總結
- JavaScript學習1:正規表示式JavaScript
- java正規表示式Java
- 【java】正規表示式Java
- 正規表示式(java)Java
- 通過js正規表示式例項學習正規表示式基本語法JS
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- 學習正規表示式(js、C#)JSC#
- 你應該學習正規表示式
- Ruby學習筆記-正規表示式筆記
- 正規表示式學習筆記一筆記
- 簡單學習 JavaScript 正規表示式JavaScript
- PERL學習筆記---正規表示式筆記
- 正規表示式學習筆記 (轉)筆記
- 正規表示式學習(2)---字元特性字元
- Java常用正規表示式Java
- java正規表示式【大全】Java
- 正規表示式(初學)
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- 從 Vue parseHTML 來學習正規表示式VueHTML
- Python學習筆記 - 正規表示式Python筆記
- js正規表示式基本語法學習JS
- python 學習 -- 正規表示式的使用Python
- JavaScript學習總結(八)正規表示式JavaScript
- Python模組學習: re 正規表示式Python
- 正規表示式詳細學習資料
- java中的正規表示式Java
- Java正規表示式總結Java
- java正規表示式大全(常用)Java