正規表示式語法學習

2022-10-10 06:21:07 字數 1958 閱讀 8248

描述了一種字串匹配的模式。可以用來檢查乙個串是否包含有某個子串,將匹配的子串替換、從某個串中取出符合條件的子串等

普通字元

[abc]

匹配[...]中所有的字元

[^abc]

匹配除了[...]中字元的所有字元

[a-z]

表示乙個區間,匹配所有大寫字母,[a-z]表示所有小寫字母

.匹配除了換行符(\n、\r) 之外的任何單個字元,相當於/[^\n\r]/

[\s\s]

匹配所有,\s 是匹配所有空白符、包括換行,

\s 非空白符,不包括換行

\w匹配字母、數字、下劃線。等價於[a-za-z0-9_]

特殊字元

$匹配輸入字串的結尾位置

()標記乙個子表示式的開始和結束位置

? 等於0 或1 次

表示前面的字元最多隻出現一次(0次或1次)

^匹配輸入字串的開始位置,除非在放括號表示式中使用,當該符號在方括號表示式中使用是,表示不接受該方括號表示式的字元集合,

匹配前面的子表示式 一次或多次,例如,zo+ 能匹配zo和zoo 但是不能匹配z 等價於

?匹配前面的子表示式零次或1次,例如 do(es)? 可以匹配do、does、doxy ? 等價於

n是個非負整數,匹配確定的n 次,例如o 不能匹配bob 中的o,但是能匹配food中的兩個oo

n是個非負整數,至少匹配n次,例如,0 不能匹配bob 中的o, 但能匹配 foooood 中所有o 。o 等價於o+ ,而o 等價於o*

m和n均為非負整數,其中n<=m ,最少匹配n次和最多匹配m次,例如 o 將匹配 foooooood

中錢三個ooo ,o 等價於0? ,請注意逗號在兩個數之間不能有空格。

案例/<.>/ 貪婪

/<.>/ 非貪婪

定位符

使您能夠將正規表示式固定在行首或行尾。

定位符用來描述字串或單詞的邊界,^和$ 分別指字串的開始和結束,\b 描述單詞的前或後邊界,\b表示非單詞邊界。

^ 匹配輸入字串開始的位置

$ 匹配輸入字串結尾的位置

\b 匹配乙個單詞邊界,即字與空格間的位置

\b 非單詞邊界匹配

注意: 不能將限定符與定位符一起使用

反向應用

捕獲的表示式,正如 [a-z]+ 指定的,包括乙個或多個字母。正規表示式的第二部分是對以前捕獲的子匹配項的引用,即,單詞的第二個匹配項正好由括號表示式匹配。\1 指定第乙個子匹配項。

單詞邊界元字元確保只檢測整個單詞。否則,諸如 "is issued" 或 "this is" 之類的片語將不能正確地被此表示式識別。

正規表示式後面的全域性標記 g 指定將該表示式應用到輸入字串中能夠查詢到的盡可能多的匹配。

表示式的結尾處的不區分大小寫 i 標記指定不區分大小寫。

修飾符(標記)

i不區分大小寫

g全域性匹配

m多行匹配

s特殊字元圓點. 中包含換行符\n

正規表示式基本語法學習

正規表示式常用的 本人今天下午沒什麼事做,現學現賣 dd 表示前導符必須要有1個或多個 上述表示式匹配 dd dddd 等 aa 表示前導符必有有0個貨多個 如 aa aaa ak?表示前導符有0個或1個 ak a 只有這兩個匹配 ak 是乙個非負整數。匹配確定的 n 次 ak n 是乙個非負整數。...

正規表示式語法學習 Python Qt Vim

python qt vim 字串開頭 a vim中,a代表非字元,與 a即 0 9a za z 對應 字串結尾 z 單詞邊界 b b vim中 b代表退格,其他 b 表示退格 單詞字元 w w w 對於vim,指 0 9a za z 其他,包含unicode 數字字元 d d d 對vim,指 0 ...

正規表示式基本語法學習

兩個特殊的符號 和 他們的作用是分別指出乙個字串的開始和結束。例子如下 the 表示所有以 the 開始的字串 there the cat 等 of despair 表示所以以 of despair 結尾的字串 abc 表示開始和結尾都是 abc 的字串 呵呵,只有 abc 自己了 notice 表...