1.1 普通字元
字母,數字,漢字,下劃線,以及沒有特殊定義的標點符號,都是普通字元,表示式中的普通字元,在匹配乙個字串的時候,匹配與之相同的乙個字元
1.2 簡單的轉義字元
表示式說明
\n換行符
\t製表符
\\代表\本身
^,\$,\.,\\(,\),\[,\],\?,\+,\*,\
2.1 標準字元集合
能夠與**『多種字元**』匹配的表示式:注意:區分大小寫,大寫是相反的意思
表示式說明
\d任意乙個數字,0-9中的任意乙個
\w任意乙個字母,數字,或下劃線,也就是0-9,a-z,a-z,_中的乙個
\s包括空格,製表符,換行符等空白字元的其中任意乙個
.小數點可以匹配任意乙個字元,如果要匹配包括「\n「在內的所有字元,一般使用[\s\s]
3.1 自定義集合
的匹配方式,能夠匹配方括號中的任意乙個字元
表示式說明
[abc@5]
匹配"a",「b」,「c」,"@"中的任意乙個
[^abc]
匹配除了a,b,c之外的任意乙個字元
[f-k]
匹配f-k之間的任意乙個字母
[^a-f0-3]
匹配a-f,0-3之外的任意乙個字元
**注意:**正規表示式的特殊符號,被包含到中括號中,則失去特殊意義,除了^,-之外
標準字元集合,除了小數點外,如果被包含於中括號中,那麼自定義字元集合將包含該標準字元集合
例如:[\d.\-+]:將匹配:數字,小數點,-,+
量詞修飾匹配次數的特殊符號
表示式說明
表示式重複n次
表示式至少重複m次,最多重複n次
表示式至少重複m次
?匹配0次或者1次,相當於
+表示式至少出現1次,相當於
*表示式不出現或者出現任意次,相當於
匹配次數中的貪婪模式(匹配的字元越多越好,預設)
匹配次數中的非貪婪模式(匹配字元越少越好,修飾匹配次數的特殊符號再加上"?"號)
字元邊界
本組標記匹配的不是字元,而是位置,符合某種條件的位置
表示式說明
^與字串開始的地方進行匹配
$與字串結束的地方進行匹配
\b匹配乙個單詞邊界
\b 匹配這樣乙個位置,前面的字元和後面的字元不全是\w,也就是說,左右兩邊的字元,至少有乙個不能被\w表示才可以
單詞邊界就是單詞和符號之間的邊界
這裡的單詞可以是中文字元,英文本元,數字;符號可以是中文符號,英文符號,空格,製表符,換行
選擇符和分組
表示式作用
| 分支結構
左右兩邊表示式是或的關係,匹配左邊或者右邊
()捕獲組
1.在被修飾匹配次數的時候,括號中的額表示式可以作為整體被修飾2.取匹配結果的時候,括號中的表示式匹配到的內容可以被單獨得到,3.每一對括號會分配乙個編號,使用()的捕獲根據左括號的順序從1開始自動編號,捕獲元素編號為0的第乙個捕獲是由整個正規表示式模式匹配的文字
(?:express)非捕獲組
一些表示式中,不得不使用(),但是又不需要儲存()中子表示式匹配的內容,這時可以使用非捕獲組來抵消使用()帶來的***
1 ((a)(b(c)))
2 (a)
3 (b(c))
4 (c)
反向引用(\n)
反向引用很方便,因為它允許我們重複模式而無需再次編寫
每一對()會分配乙個編號,使用()的捕獲根據左括號的順序從1開始自動編號
通過反向引用,可以對分組已捕獲的字串進行引用
1.只進行子表示式的匹配,匹配內容不計入最終的匹配結果,是零寬度的
2.這個位置應該符合某個條件,判斷當前位置的前後字元,是否符合指定的條件,但不匹配前後的字元,是對位置的匹配
3.正規表示式匹配過程中,如果子表示式匹配到的是字元內容,而非位置,並被儲存到最終的匹配結果中,那麼就認為這個子表示式是占有字元的,如果子表示式匹配的僅僅是位置,或者匹配的內容並不儲存到最終的匹配結果中,那麼就認為這個子表示式是零寬度的,占有字元還是零寬度,是針對匹配內容是否儲存到最終的匹配結果中而言的
表示式說明
(?=exp)
斷言自身出現的位置後面能匹配表示式exp eg:[a-z]+(?=ing)
(?!exp)
斷言此位置的後面不能匹配表示式exp
(?<=exp)
斷言自身出現的位置前面能匹配表示式exp
(?!斷言此位置的前面不能匹配表示式exp
eg:[a-z]+(?=ing)表示以ing結尾的符合[a-z]的字元
1. 忽略大小寫模式ignorecase
匹配時忽略大小寫,預設情況下 正則是區分大小寫的
2. 單行模式 singleline
整個文字看做是乙個字串,只有乙個開頭乙個結尾,使小數點「.」可以匹配包含換行符在內的任意字元
3.多行模式 multiline
每一行都是乙個字串,都有開頭和結尾
在指定了multiline之後,如果需要僅匹配字串開始和結束位置,可以使用\a和\z
public
class
demo01
// .pattern.matcher(string regex,charsequence input)是乙個靜態方法,
// 用於快速匹配字串,該方法適合用於只匹配一次,且匹配全部字串.
system.out.
println
(pattern.
matches
("\\w"
,"woshizhongguoren"))
;}}
public
class
demo02
}
public
class
demo03
}}
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...