正規表示式 嵌入條件(七)

2021-07-25 00:02:08 字數 843 閱讀 7441

本次將結束這個系列,最後一篇文章。相對而言,嵌入條件在正規表示式中使用很少,甚至很多語言不支援嵌入條件這種寫法,不過最為了解,本章講簡短說明一下嵌入條件在正規表示式中如何使用。嵌入條件的表示式按照書上的說明是這樣的:

?(backer-ference)true-regex|false-regex
我們這裡舉乙個例子,建設匹配美國的**號碼的例子:

123-456-7890

(123)456-7890

(123-456-7890

1234567890

123 456 7890

按照一般寫法,我們可以寫出一下的正規表示式來匹配**號碼

\(?\d\)?-?\d-\d
按照上面的表示式,第三個(123-456-7890將會匹配到,而很明顯的是:這個**號碼的括號沒有成對出現,因此它不是乙個正確的**號碼格式。這個時候就是嵌入條件出場的時候了。按照前面說的語法,就得出以下的表示式

(\()?\d(?(1)\)|-)\d-\d
這裡面有乙個重要的子表示式,我們把它單獨拿出來說明一下:

(?(1)\)|-)
假設第乙個子表示式(就是前半個括號「(\()」)存在的話,那麼接下來應該匹配後半邊括號,如果不是括號,那麼應該匹配「-」號。相當於乙個if else。這裡我們用偽**來說明一下這個表示式的含義

if(第1個子表示式=="(")

else

所以通過最後這個表示式就剛好可以匹配想要的結果,既只有前2個是正確的**號碼。

正規表示式規則(七)

匹配次數中的貪婪與非貪婪 在使用修飾匹配次數的特殊符號時,有幾種表示方法可以使同乙個表示式能夠匹配不同的次數,比如 具體匹配的次數隨被匹配的字串而定。這種重複匹配不定次數的表示式在匹配過程中,總是盡可能多的匹配。比如,針對文字 d d d 舉例如下 表示式匹配結果 w 將匹配第乙個 d 之後的所有字...

七 正規表示式大全

基本符號 表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 表示匹配 零次到多次 表示匹配 一次到多次 至少有一次 表示匹配零次或一次 表示匹配單個字元 表示為或者,兩項中取一項 小括號表示匹配括號中全部字元 中括號表示匹配括號中乙個字元 ...

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

非負整數 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...