連字元(-)用於指定乙個字元範圍。例如,所有大寫英文本元的範圍可以指定為:
[a-z]
乙個數字的範圍可以指定為:
[0-9]
該字元類有助於解決匹配文章引用的問題。請看下面的正規表示式:
[cc]hapter [1-9]
它匹配字串"chapter" 或"chapter" 且其後面跟有空格,然後是從1到9的任意單個數字,下面的每一行都匹配這種模式:
you will find the information in chapter 9
and chapter 12.
chapter 4 contains a summary at the end.
根據這個任務,本例中的第二行可以看做是假警報,可以在"[1-9]"之後新增空格來避免匹配兩個數字。也可以指定不在那個位置匹配的字元類,正如我們在下一節要看到的那樣。可以同時指定多重範圍,也可以混合使用:
[0-9a-z?,.;:'"]
這個表示式將匹配「任意單個字元,可以是數字、小寫字母、問號、逗號、句
點、分號、冒號、單引號和引號」。記住每個字元類都匹配單個字元。如果指
定多個類,可以描述多個連續的字元,例如:
[a-za-z][.?!]
這個表示式匹配「任意後面跟有句點、問號或感嘆號的小寫或大寫字母」。
如果閉括號(])是作為類中的第乙個字元出現(或者是脫字元後的第乙個字元,參見下一節) ,那麼它就被解釋為類的乙個成員。如果連字元在乙個類中是第乙個或最後乙個字元,則失去其特殊含義。因此,為了匹配算術操作符,我們在下面的示例中將連字元(-)放在第一位:
[-+*/]
在awk中,還可以使用反斜槓轉義在範圍中出現的連字元或閉方括號,但是語法更雜亂了。
嘗試用正規表示式匹配日期是乙個有趣的問題。下面是兩種可能的格式:
mm-dd-yy
mm/dd/yy
下面的正規表示式指示每個字元位置可能的數值範圍:
[0-1][0-9][-/][0-3][0-9][-/][0-9][0-9]
"-"或"/"都可能是定界符。在第乙個位置放置連字元確保它在字元類中解釋為字面意義,即作為乙個連字元,而不是指示乙個範圍。
取值範圍的正規表示式 正規表示式 初學
import re demo data re.match r hello hello,武漢加油 print demo data 有物件則意味著正規表示式提取資料成功 執行結果 正則滿足條件提取資料成功,返回值是乙個物件,不滿足,none空 匹配單個字元 import re demo data re....
正規表示式的應用範圍
前幾天做專案,遇到乙個驗證密碼組成是否合法的任務。我無知的任務這個可以用正規表示式去做。但花了半天時間後卻發現,這個任務無法用正規表示式完成。還是要老老實實寫 不過半天的工作也沒算白費,複習了正規表示式,還知道了乙個用於測試正規表示式的 btw,發現 這個 的 ascii 表是錯的,注意十進位制96...
正規表示式字元
正規表示式符號 字元 描述 標記下乙個字元是特殊字元或文字。例如,n 和字元 n 匹配。n 則和換行字元匹配。序列 和 匹配,而 則和 匹配。匹配輸入的開頭。匹配輸入的末尾。匹配前乙個字元零或多次。例如,zo 與 z 或 zoo 匹配。匹配前乙個字元一次或多次。例如,zo 與 zoo 匹配,但和 z...