正規表示式

2022-04-03 09:14:54 字數 2385 閱讀 3622

正規表示式

英文為regular expression,簡稱:regexregexp

含義:按照某種規則去匹配符合條件的字串

正規表示式由兩種基本字元型別構成:

元字元是在正規表示式中有特殊含義的非字母字元:*+?^$.|\(){}

常用字符集

\t:水平製表符

\v:垂直製表符

\n:換行符

\r:回車符

\0:空字元

\f:換頁符

|:或

字元類

由元字元建立。字元類取反:由^建立,反向類,[^123]表示不是字元123的內容

範圍類

[a-z]:來連線兩個字元表示從az的任意字元

預定義類

.[^\r\n],除了回車符和換行符之外的所有字元

\d[0-9],數字字元

\d[^0-9],非數字字元

\s[\t\n\x0b\f\r],空白符

\s[^\t\n\x0b\f\r],非空白符

\w[a-za-z0-9_],單詞字元(字母、數字、下劃線)

\w[^a-za-z0-9_],非單詞字元

邊界

^:開始標記,以xx開始

$:結束標記,以xx結束

\b:單詞邊界

\b:非單詞邊界

量詞

?:出現0次或1

+:出現1次或多個

*:出現0次或多次(任意次)

:出現n

:出現n次或n次以上,當n0時等價於*n1時等價於+

:出現n次到m次,當n0m1時等價於?

貪婪模式和非貪婪模式

正規表示式預設是貪婪模式,當使用量詞進行匹配時,會盡可能匹配多的。

非貪婪模式:讓正規表示式盡可能少的匹配,也就是說一旦成功匹配不再繼續嘗試。

在量詞後面加上?即可

'123456789'.match(/\d?/g)

result:

分組()

忽略分組:(?: byron).(ok)

前瞻後顧

正向前瞻:exp(?=assert)

負向前瞻:exp(?!assert)

正向後顧:exp(?<=assert)

負向後顧:exp(?物件屬性

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

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

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