正規表示式

2021-06-25 21:41:35 字數 1270 閱讀 4850

一,指定匹配字元:

範圍字元:[ ]

[xyz]

匹配指定字元中的任意乙個字元

新增^表示排除指定字元

[a-z]

匹配指定範圍中的任意乙個字元

x|y匹配指定字元x或y中的任意乙個

[\u4e00-\u9fa5]

匹配任意漢字

任意字元:., \w, \d, \s

.匹配任意字元,除「\r\n」

\w匹配任意字母,數字,下劃線

\d匹配任意數字

\s匹配任意空白,如空格、製表符、換頁符等

\n:換行符

\r:回車符

\t:製表符

\f:換頁符

\v:垂直製表符

大寫取反。

二,指定匹配次數:*, +, ?,

*零次或多次

+一次或多次

?零次或一次

n次最少n次

最少n次,最多m次

貪婪與非貪婪:?

設定匹配次數後,預設是貪婪匹配,就是盡可能匹配到最多的字元。在量詞後新增?後,改為非貪婪模式。

源字串:aaa

bbb正規表示式1:.*

匹配結果:aaa

bbb正規表示式2:.*?

匹配結果:aaa

三,指定匹配位置:\b, ^, $

\b匹配任何單詞的邊界

^匹配字串的開始位置

$匹配字串的結束位置

四,指定匹配前提條件:(?=), (?!), (?<=), (?用來指定匹配前必須滿足的前提條件。

注意:前提條件中的正規表示式exp,只是用來宣告某種特徵,不會用於真正的匹配。

(?=exp)

尾部符合exp

如\b\w+(?=ing\b), 查詢i'm singing while you're dancing.時,它會匹配sing和danc

(?!exp)

尾部不符合exp

如\d(?!\d),匹配三位數字,而且這三位數字的後面不能是數字

(?<=exp)

頭部符合exp

如(?<=\bre)\w+\b,查詢reading a book時,它匹配ading

(?頭部不符合exp

如(?

五,用匹配得到的字元作為接下來的匹配條件:()

(exp)

匹配得到的字元儲存到\1,\2...\9

(a|b)\1 相當於aa|bb。在匹配「abaa」時,匹配到的結果是「aa」

(?exp)

匹配得到的字元儲存到\

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...