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