正規表示式學習

2021-09-20 13:07:08 字數 1378 閱讀 2285

正規表示式是什麼?

正規表示式是一種強大的文字處理工具。

正規表示式的定義

制定了乙個規則,通過這個規則匹配一些符合的字串。

正規表示式的語法

量詞

表示式重複n次

表示式至少重複m次,至多重複n次

表示式至少重複m次

?表示式匹配0到1次,相當於

+表示式至少出現一次,相當於

*表示式不出現或出現任意次,相當於

貪婪模式(預設),次數匹配的越多越好

非貪婪模式,在後面加?,次數匹配的越少越好

例子:/d = /d/d/d/d/d/d,匹配連續的6個數字字串

/d? 匹配3到6的連續字串,若有超過6個的 字串,匹配3個,就會匹配下一段

/d 與上面相反,會優先匹配6個,

字元邊界

^

匹配字串開始的地方

$匹配字串結束的地方

\b匹配但單詞的乙個邊界,就是前面的和後面的不全是\w

選擇符和分組

|

分支結構

左右兩邊表示式或的關係,匹配左邊或右邊

()捕獲組

(1)在被修飾匹配次數的時候,括號中的表示式作為乙個整體被修飾

(2)去匹配結構的時候,括號中的表示式匹配的內容可以被單獨得到

(3)每一對括號會分配乙個編號,使用()的捕獲根據左括號的順序 從一開始編號

(?:expression)

一些表示式中,不得不使用(),但又不需要儲存()子表示式匹配的內容,這時就可以用非捕獲組

預搜尋(零寬斷言)

只進行子表示式的匹配,匹配內容不計入最終結果,是零寬度的

這個位置應該符合某個條件,判斷當前後是否符合指定條件,但不匹配前後字元。

(?=exp)

後面的表示式exp

(?<=exp)

前面的表示式exp

(?!exp)

後面不能匹配的表示式exp

(?前面不能匹配的表示式exp

反向引用(\nnn)

每對括號會分配乙個編號,根據左括號的順序。

通過反向引用,可以對分組已經捕獲的字串進行引用

\nnn 就是 \1,\2…\100等

正規表示式的匹配模式

正規表示式學習

概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...

正規表示式學習

1.元字元 1 匹配任何單個字元 2 匹配括號中的任何乙個字元 可以再括號中使用連字元 來指定子都的區間來簡化表示,如a 0123456789 c等價於a 0 9 c 3 將 之間括起來的表示式定義為 組 4 將兩個匹配條件進行邏輯 或 運算 z f ood則匹配 zood 或 food 5 匹配0...

正規表示式學習

只是點皮毛,先湊合用著了,順便鄙視一下sqlserver,居然不支援正則。b 元字元,代表著單詞的開頭或結尾,也就是單詞的分界處。d 數字 s 任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w 字母或數字或下劃線或漢字等 匹配字串的開始 匹配字串的結束 轉義符 除換行符以外的任意字...