正規表示式

2021-07-02 22:14:08 字數 1722 閱讀 5108

正規表示式可以理解為描述一種字串的規則,通過這個規則,在乙個字串中進行匹配,從而找到符合這個規則的所有的字串。

例1. \b    正規表示式的乙個元字元,代表單詞的開頭或結尾 , 相當於單詞的分界處

\b abc \b  匹配字串中的abc

例2.\b a \b .*\b n \b  表示匹配a~n 不論a n之間存在多少字串

. 乙個元字元,表示匹配除換行符以外的任意字元

* 乙個元字元,表示前面的內容可以連續重複使用任意次,例如assdan

.* 表示a n之間可以存在任意數量的不包含換行符的字元

例3.0 \d\d - \d\d\d\d    099-00000      \d - \d    表示前面 \d 必須連續重複匹配n次

例4.  ^  $ 分別表示字串的開始和結束

^\d$    匹配 5 ~12位 的數字

常用元字元 .

匹配除換行符以外任意字元

\w匹配字母或數字或下劃線或漢字

\s匹配任意的空白符

\d匹配數字

\b匹配單詞的開始結束

^字串的開始

$字串的結束

常用的限定符 *

重複0次或更多

+重複一次或更多

?重複一次或0次

重複n次

重複n次或更多

重複n到m次

1.字元轉義     涉及到元字元本身用\        \*  \\   \.

2.[. ? !]   匹配或. 或? 或!

3.分支條件  |   相當於  或       0\d | 0\d    匹配符合這2種的任意一種

4.分組  ()     (\2[0-3]\d)   ()重複3次

5.反義

常用反義** \w

匹配任意不是字母,數字,下劃線,漢字的字元

\s匹配任意不是空白符的字元

\d匹配任意非數字的字元

\b匹配不是單詞開頭或結束的位置

[^x]

匹配除了x以外的任意字元

[^adop]

匹配除了adop字母以外的任意字元

6.後向引用 

使用()指定子表示式後,捕獲

例  \b (\w+) \b \s+  \1 \b  匹配 go  go     \1表示捕獲(\w+)

自定義組名(?\w+)  反向引用分組捕獲的內容 \k

\b(?\w+)\b\s+\k\b

7.零寬斷言

7.1(?=exp)

\b\w+(?=ing\b) 匹配ing結尾的單詞前面的部分  singing   匹配sing

7.2(?<=exp)

(?<=\bre)\w+\b  匹配re開頭的後半部分  reading   匹配ading

8.負向零寬斷言

8.1(?!exp) 此位置的後面不能匹配表示式exp

\d(?!\d)    匹配3位數字,3位數字後面不能是數字

8.2(?(?9.注釋    (?#comment)

10.貪婪  懶惰

貪婪匹配   在使表示式得到匹配的前提下,匹配盡可能多的字元   .*

懶惰匹配  匹配盡可能少的字元    .*?

懶惰限定符 *?

重複任意次,盡可能少重複

+?重複1次或多次,盡可能少

??重複0次或1次,盡可能少

?重複n到m次,盡可能少

?重複n次,盡可能少

參考資源

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

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

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