正規表示式詳解

2021-10-02 22:24:44 字數 2431 閱讀 7150

字元語法

語法解釋

語法例子

\d匹配數字(0~9)

\d 匹配8 不匹配12

\d匹配非數字

\d 匹配c 不匹配3

\w匹配任意單字元

\w\w 匹配a3,不匹配@3

\w匹配非單字元

\w匹配@,不匹配c

\s匹配空白字元

『d\s\d 匹配3 d,不匹配abc

\s匹配非空字元

\s\s\s 匹配a#4,不匹配3 d

.匹配任意字元

. 匹配a,不匹配換行

[…]匹配括號中任意字元

[b-d]匹配b、c、d, 不匹配e

[^…]

匹配非括號字元

[^b-z]匹配a,不匹配b-z的字元

重複語法

語法解釋

語法例子

?匹配0或1次

5?匹配5或0,不匹配非5和0

+匹配一次或多次

\s+匹配乙個以上\s,不匹配非乙個以上\s

*匹配0次以上

\w匹配 0以上 \w,不匹配非n\w

匹配n次字元

\d匹配\d\d\d,不匹配\d\d或\d\d\d\d

匹配n次和n次以上

\w匹配\w\w和\w\w\w以上,不匹配\w

匹配n次上m次下

\s匹配\s,\s\s,\s\s\s,不匹配\s\s\s\s

重複語法

語法解釋

^正則開始識別符號

$正則結束識別符號

\a前面模式開始位置

\z前面模式結束位置

\z前面模式結束位置(換行前)

\b匹配乙個單詞邊界

\b匹配乙個非單詞邊界

貪婪模式在匹配到成功之後仍然會繼續往後面匹配,檢視後面是否有匹配成功的。在貪婪模式後面新增?即可 讓其變成非貪婪模式

舉個例子源字串:sssstest1bbtest2

cc

正則1:.*

結果1test1

bbtest2

正則2:.*?

結果2:test1

test2

正則1採用的是貪婪模式,在匹配到第乙個

時已經可以使整個表示式匹配成功,但是由於採用的是貪婪模式,所以仍然要向右嘗試匹配,檢視是否還有更長的可以成功匹配的子串,匹配到第二個

後,向右再沒有可以成功匹配的子串,匹配結束,匹配結果為test1

bbtest2

。而非貪婪模式則匹配到第乙個

之後就返回了,然後再往後面尋找是否還有第二個滿足條件的,發現test2

也滿足,也將其返回,所以非貪婪模式一般返回的是乙個結果集。

又稱捕獲組和非捕獲組,使用()

匹配出來只要 hello world,不要外面得 h1標籤

可以採用(?<=)(?=)來實現,這個標識

func

test2

(t *testing.t)

(?<=)表示要匹配得字元前面必須是以結尾的

通過 \1 \2 引用前面的子表示式

world

pibigstar

我們想匹配出來標籤正確的,我們發現 h2 的標籤是異常的,而我們不想匹配它,那麼就可以採用回溯引用的方式

可採用下面的正規表示式

(?<=).+?(?=)

則會匹配出來hellopibigstar

正規表示式詳解

正規表示式 基本正規表示式主要用於grep,egrep,vi,sed,awk命令中進行字串匹配。符號 意義 c 匹配字母c 匹配任意單個字元 匹配前乙個字元出現零次或多次 匹配任意多個任意字元 匹配集合中的任意單個字元,括號中為乙個集合 x y 匹配連續的字串範圍 匹配字串的開頭 匹配字串的結尾 匹...

正規表示式詳解

正規表示式主要作用 分割 匹配 查詢 替換 正規表示式中包括的元素 1.原子 普通字元 a z a z 0 9 原子表 轉義字元 2.元字元 有特殊功能的字元 3.修正模式符 系統內建部分字元,例如 i m s u 原子 1.a z a z 0 9 最常見的字元 2.abc 用圓括號包含起來的單元符...

正規表示式詳解

正規表示式 regular expression 又稱正規表示式 規則表示式等,是電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列匹配某個句法規則的字串,也通常用來檢索 替換那些匹配某個模式的文字。下面從以下方面開始講述正規表示式在python中的應用。1.在python中使用,首先需要...