正規表示式入門教程

2021-09-09 09:00:21 字數 3264 閱讀 3749

元字元原義字元

非列印字元

字元類預定義類

邊界量詞

貪婪與懶惰(非貪婪)

3.練習一下

先來看看幾個常用的案例。

手機號碼正規表示式:	/^1[345789][0-9]$/

解釋:最外的/.../是正則的表示式的標誌,

^:表示以什麼開頭,

:表示哪些可選項,

{}:表示出現幾次,

$:以什麼結尾。

手機號案例:以1開頭,第2位為[3,4,5,7,8,9]中任一,【第2位為0~9任意一位,迴圈9次】也就是第3位到第11位為任意數字。

日期的正規表示式:	/^\d[/-]\d[/-]\d$/

解釋:最外的//是正則的表示式的標誌,

^:表示以什麼開頭,

\d:表示為數字,

{}:表示出現幾次,

/-:表示 - ,

$:表示結尾。

日期案例:4位數字-2位數字-2位數字

修飾符

修飾符與其他語法特殊,字面量方法聲名的時候放到/…/後,建構函式宣告的時候,作為第二個引數傳入。整個正規表示式可以理解為正規表示式規則字串+修飾符。

(1)g:global
執行乙個全域性匹配。不加g只匹配第乙個。

(2)i:ignore case
忽略大小寫進行匹配。

(3):multiple lines
多行匹配

元字元
原義字元
例如我們要匹配的is 或 別的字元

非列印字元
\f 匹配乙個換頁符。等價於\x0c和\cl。

\n 匹配乙個換行符。等價於\x0a和\cj。

\r 匹配乙個換行符。等價於\x0d 和 \cm。

\s 匹配任何空白字元,包括空格、製表符、換頁符等。 等價於[ \f\n\r\t\v]。

\s 匹配任何非空白字元。 等價於[ ^ \f\n\r\t\v]。

\t 匹配乙個製表符。 等價於 \x09 和 \cl 。

\v 匹配乙個垂直製表符。 等價於 \x0b 和 \ck

字元類
[可以表示匹配數字] :[13579] :【任意從13579取一】

[可以表示某些字元]:[//] :【//】

[^ 可以表示取反]:[ ^ 13579]:【任意從02468取一】

[ - ]:[a-za-z0-9]:【從a-z,a-z,0-9中任意取】

預定義類
. :[ ^ \n\r] :除了回車符和換行符之外的所有字元

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

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

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

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

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

\w:[ ^ a-za-z_0-9]:非單詞字元

邊界
^ :以xx開頭。

$ :以xx結尾。

\b:單詞邊界,指[a-za-z_0-9]之外的字元。

\b:非單詞邊界。

量詞
?:出現0次或1次。

*:出現任意次。

+:出現一次或多次(至少一次)。

:對應0次或n次。

:至少出現n次到不超過m次。

:至少出現n次。

:至多出現n次。

貪婪與懶惰(非貪婪)
見名思意 貪婪就是盡可能多的匹配,懶惰就是盡可能少的去匹配。

在修飾匹配次數的特殊符號(+、*、)後再加上乙個 「?」 號,就由貪婪模式變成懶惰模式。

貪婪

正則式源字元

匹配結果

(j)(\w+)

「jaaaaay jay ja」

匹配第乙個j後的所有元素「jaaaaay jay ja」

(j)(\w+)(j)

「jaaaaay jay ja」

匹配第乙個和最後乙個j之間的元素"jaaaaay jay j"

懶惰正則式

源字元匹配結果

(j)(\w+?)

「jaaaayzzz jay」

「ja」

(d)(\w+?)(d)

「daadccd」

「daad」

匹配出生日期

出生日期的寫法有很多種,例如[1997-04-15]、[2023年4月15日]、[1997/4/15]、[1997-04]等等

如何把這些全部匹配進來呢

line = "xzy出生於2023年4月15日"

line = "xzy出生於1997-04-15"

line = "xzy出生於1997-04"

line = "xzy出生於1997/4/15"

line = "xzy出生於2023年4月"

reg = ".*出生於(\d[年-/]\d([月]$|[月-/]\d([日]|$)|$))"

強行解釋一波

.*就代表任意字元出現任意次數

\d代表數字,代表出現幾次,[年/-]表示可選項。 也就是匹配年份

\d 表示匹配月份可能是4 也可能是 04,但是有些只到月沒有日 有些還有日,所以要再加判斷.

[月]$: 這是考慮最後一種情況 只到月份 [2023年4月]

[月-/]\d: 這是包含日的情況

正規表示式入門教程

正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字編輯器裡,正規表示式通常被用來檢索 替換那些符合某個模式的文字。在編寫處理字...

正規表示式入門教程

表1.常用的元字元 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 表2.常用的限定符 語法說明 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n到m次 3 正規...

正規表示式快速入門教程

首先,讓我們來了解一下究竟什麼是vbscript的 正規表示式 物件,我們先來看一段程式 function checkexp patrn,strng dim regex,match 建立變數。set regex new regexp 建立正規表示式。regex.pattern patrn 設定模式。...