正規表示式初探

2022-07-15 04:06:13 字數 915 閱讀 2421

1. (010)88886666,或022-22334455,或02912345678

\(?0\d[)-]?\d

分析 (010)、022-、029 

首先是乙個轉義字元\(,它能出現0次或1次(?),然後是乙個0,後面跟著2個數字(\d),然後是)或-或空格中的乙個,它出現1次或不出現(?),最後是8個數字(\d)。

不幸的是,剛才那個表示式也能匹配010)12345678或(022-87654321這樣的「不正確」的格式。要解決這個問題,我們需要用到分枝條件。正規表示式裡的分枝條件指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配,具體方法是用|把不同的規則分隔開

\(0\d\)\d|0\d[-]?\d

這樣只符合上述三種情況

使用分枝條件時,要注意各個條件的順序。如果你把它改成\d|\d-\d的話,那麼就只會匹配5位的郵編(以及9位郵編的前5位)。原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。

0-199  、200-249  250-255

[01]?\d\d  、2[0-4]\d、25[0-5]

(([01]?\d\d?|2[0-4]\d|25[0-5])\.)([01]?\d\d?|2[0-4]\d|25[0-5])

3. ]+>匹配用尖括號括起來的以a開頭的字串

而 和]+>,匹配ss> 時,前者是ss>,後者是

參考教程: 《正規表示式30分鐘入門教程》

下表從最高到最低說明了各種正規表示式運算子的優先順序順序:

運算子說明

轉義符括號和中括號

*, +, ?, , ,

限定符^, $, \任何元字元、任何字元

定位點和序列

替換

C Regex 正規表示式初探

使用正規表示式,之前對規則不求甚解,現在整理下學習成果 string str 混 3a膠帶機 140100 無 是 三工十二備混 3b膠帶機 140100 string patt w 工 w 備 我的提取規則就是識別str字串中 工 備 這樣的字串,解釋 w是 與任何單詞字元匹配,是字元類的匹配規則...

正規表示式與委託初探

正規表示式 正規表示式是一種用於匹配 提取以及替換的格式化字串。該字串中包含原始匹配字元,以及一些表徵其他意義的元字元。首先正規表示式是字串 其次包含正常字元 然後包含元字元 最後用於匹配 提取和替換 基本元字元 任意乙個換行字元 集合匹配,匹配乙個中出現的字元 調整優先順序,還有乙個分組的功能 或...

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

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