正規表示式

2021-10-07 21:45:03 字數 2452 閱讀 9947

正則對字串作用:

1.分割

2.匹配

3.替換

4.搜尋

常用正則

表示式匹配規則

^1.邊界鑑定符,匹配輸入字串開始的位置 2.取反

$邊界鑑定符,匹配輸入字串結尾的位置

^re$

邊界鑑定符 ,目標字串re與正則完全匹配

.匹配除"\r\n"之外的任何單個字元

?修飾前乙個正則出現的次數為0-1次

+修飾符前面的正規表示式出現1次或多次

*修飾符 修飾符前面的正規表示式出現0次或多次

\a匹配輸入字串開始的位置(無多行支援)

\z字串結尾(類似$,但不受處理多行選項的影響)

\z字串結尾或行尾(不受處理多行選項的影響)

a|b匹配 a 或者 b

(?: re)

匹配 re,不捕獲匹配的文字,也不給此分組分配組號

(?> re)

貪婪子表示式

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

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

\s匹配任意的空白符,相等於 [\t\n\r\f]

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

\d匹配數字,類似 [0-9]

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

\g當前搜尋的開頭

\n換行符

\b通常是單詞分界位置,但如果在字元類裡使用代表退格

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

\t製表符

\q開始引號:\q(a+b)*3\e 可匹配文字 「(a+b)*3」。

\e結束引號:\q(a+b)*3\e 可匹配文字 「(a+b)*3」。

\轉義字元

: 字元選擇器

[0-9] :在指定範圍中任意取乙個值

[a-z][0-9]: 取乙個字母和乙個數字

[0-9a-za-zz]: 在指定範圍中任意取乙個值

() : 字串選擇器 在字串中任選乙個,用於分組

([a-z]+)([0-9]+):小寫字母一組,數字一組		

例如: "adnw2135" 結果:adnw 2135

(([0-9]+)-([0-9]+)-([0-9]+)):按照 - 隔斷,取數字為同一組

例如:2020-4-26 結果:2020 4 26

{} :修飾符 修飾前乙個正則出現幾次

:出現5次

:最少出現1次

:最多出現2次

:出現1-6次

貪婪模式:

正則:as.*5

字串:asda.168546f?"sok5^*as%katex parse error: expected 'eof', got '#' at position 1: #̲&dw5fg 匹配從as開始到…#&dw5

非貪婪模式:

正則:as.*?5

字串:asda.168546f?"sok5^*as%$#&dw5fg

匹配從as開始到5截至的字串,在所有滿足匹配條件的結果中取as/5之間字元數最少的匹配結果

匹配結果:asda.168546f?"sok5

例項

字串:(

(user47,

86566510),

(user83,

15647839))

正則:\(\(

([a-za-z0-9]

+),(

[0-9

]+)\),\(

([a-za-z0-9]

+),(

[0-9

]+)\)\)

group0:

((user47,

86566510),

(user83,

15647839))

group1:user47

group2:

86566510

group3:user83

group4:

15647839

字串:info 2016-07

-25 requesturi:

0&p=

1&did=

18005472

&industry=

469&adid=

32正則:(

[a-z]+)

(.*?)(

^:.*).*/

(.*)

group0:info 2016-07

-25 requesturi:

0&p=

1&did=

18005472

&industry=

469&adid=

32group1:info

group2:

2016-07

-250&p=

1&did=

18005472

&

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

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

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