《正規表示式必知必會》正規表示式是一些用來匹配和處理文字的字串
有句話希望牢牢記住:把必須匹配的情況考慮周全並寫出乙個匹配結果符合預期的正規表示式很容易,但把不需要匹配的情況也考慮周全並確保它們都將被排除在匹配結果以外往往要困難得多。邏輯思維能力(語法是正規表示式最容易掌握的部分,真正的挑戰是學會如何運用那些語法把實際問題分解為一系列正規表示式並最終解決。)
搜尋和替換
有特殊含義的特殊字元
字元功能
.可以匹配任何乙個單個的字元\轉義
匹配多個字元中的某乙個
-連字元,只用在之間,否則就是乙個普通字元
^取非匹配()
+匹配乙個或多個字元
*匹配零個或多個字元
?匹配零個或乙個字元
{}匹配的重複次數
{}的用法詳解:
*
和+
都是所謂的「貪婪型」元字元,它們在進行匹配時的行為模式是多多益善而不是適可而止的。它們會盡可能地從一段文字的開頭一直匹配到這段文字的末尾,而不是從這段文字的開頭匹配到碰到的第乙個匹配為止。
常用的貪婪型元字元和它們的懶惰型版本:
貪婪型元字元
懶惰型元字元**?
++??元字元
說明[\b]
回退(並刪除乙個字元)(backspace鍵)
\f換頁符
\n換行符
\r回車符
\t製表符(tab鍵)
\v垂直製表符
元字元說明
\d任何乙個數字字元(等價於[0-9])
\d任何乙個非數字字元(等價於[^0-9])
\w任何乙個字母數字字元(大小寫均可)或下劃線字元(等價於[a-za-z0-9_])
\w任何乙個非字母數字或非下劃線字元(等價於[^a-za-z0-9_])
\s任何乙個空白字元(等價於[\f\n\r\t\v])
\s任何乙個非空白字元(等價於[^\f\n\r\t\v])
字元類說明
[:alnum:]
任何乙個字母或數字(等價於[a-za-z0-9])
[:alpha:]
任何乙個字母(等價於[a-za-z])
[:blank:]
空格或製表符(等價於[\t])
[:cntrl:]
ascii控制字元(ascii0-31再加上ascii127)
[:digit:]
任何乙個數字(等價於[0-9])
[:graph:]
和[:print:]一樣,但不包括空格
[:lower:]
任何乙個小寫字母(等價於[a-z])
[:print:]
任何乙個可列印字元
[:punct:]
既不屬於[:alnum:]也不屬於[:cntrl:]的任何乙個字元
[:space:]
任何乙個空白字元,包括空格(等價於[^\f\n\r\t\v])
[:upper:]
任何乙個大寫字母(等價於[a-z])
[:xdigit:]
任何乙個十六進製制數字(等價於[a-fa-f0-9])
正規表示式 1 正規表示式基礎
1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...
正規表示式基礎
限定符 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹配非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 匹配正浮點數 d...
正規表示式基礎
元字元 描述 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾,但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如正規...