您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Java中怎么用正則表達式,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
學習正則表達式,用Jdk1.4后的java.util.regex
模式:
我們來看一些更常用的表達式的種類
文字(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等,檢查結果
關于“Java中怎么用正則表達式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。