正則表達(dá)式入門

概念

  • 正則表達(dá)式是描述一組字符串特征的模式,用來匹配特定的字符串。
  • 元字符是在正則表達(dá)式中有特殊含義的字符,也是保留字符,是不參與匹配的。

支持的語言及工具

幾乎所有的編程語言以及編輯器都支持正則表達(dá)式,但是有可能支持的力度、方式不太一樣,像perl/java/js等。

類unix系統(tǒng)下的工具比較多用的也比較頻繁,像grep/awk/sed等。

特點(diǎn)

  • 同一個匹配結(jié)果可以通過不同的正則表達(dá)式實(shí)現(xiàn)
  • 同一個正則表達(dá)式有可能匹配多個結(jié)果
  • 大小寫敏感

單字符匹配

  • 普通元字符
元字符 含義 舉例 說明
[] 字符組或者字符集 [0123],表示只會配置中括號中出現(xiàn)的字符
- 連字符表示范圍 [0-9],表示要配置0到9的數(shù)字 只在中括號中表示連字符
^ 取非 [^0-9] 表示除了0到9的數(shù)字都匹配 對整個字符集生效
. 通配符,匹配任意單個字符 有些情況下不能匹配行起始符
\ 轉(zhuǎn)義其他元字符 \. 表示.這個字符本身 需要放在其他元字符之前使用,表示后面跟的字符表示一個普通字符。
  • 下面一些與\搭配的字母或者數(shù)字,一起可以稱為元字符,也可以稱為字符簡寫形式
元字符 含義 說明
\a 報警符
[\b] 退格字符(回退并刪除) 需要放在中括號中
\c x 控制字符
\d 數(shù)字字符 同 [0-9]的功能
\D 非數(shù)字字符 同 [^0-9]
\o xxx 八進(jìn)制值
\w 單詞字符 同[a-zA-Z0-9_]
\W 非單詞字符 同[^a-zA-Z0-9_]
\0 空字符
\x xx 十六進(jìn)制值
\u xxx Unicode值
\n 換行符
\r 回車符
\s 空白字符 同[\f\n\r\t\v]
\S 非空白字符 同[^\f\n\r\t\v]
\t 水平制表符 即Tab鍵
\v 垂直制表符
\V 非垂直制表符
\f 換頁符
\h 水平空白符
\H 非水平空白符
  • POSIX字符類

說明:并不是所有的語言或者工具都支持POSIX字符類
在類unix環(huán)境的bash腳本中使用,還是比較一目了然
使用時必須以[[開頭,]]結(jié)尾,如[[:alpha:]]

字符類 含義 說明
[:alnum:] 任何一個字母或者數(shù)字 同[a-zA-Z0-9]
[:alpha:] 任何一個字母 同[a-zA-Z]
[:lower:] 任何一個小寫字母 同 [a-z]
[:upper:] 任何一個大寫字母 同 [A-Z]
[:blank:] 空格或者制表符 同[ \t]
[:space:] 任何一個空白字符,包括空格 同[ \t\f\n\r\v]
[:cntrl:] ASCII控制字符 ASCII 0到31,再加上127
[:digit:] 任何一個數(shù)字 同[0-9]或者\(yùn)d
[:xdigit:] 任何一個十六進(jìn)制數(shù)字 同[a-fA-F0-9]
[:graph:] 不包含空格的可打印字符 同[:print:]
[:print:] 可打印字符

多字符匹配

將元字符放在需要匹配的字符后面,表示此字符重復(fù)匹配多少次

元字符 含義 說明
+ 匹配一個或者多個
* 匹配0個或者多個
? 匹配0個或者1個
{m} 精確匹配m個
{m,n} 至少匹配m個,至多匹配n個 其中m,n可以只配置一個值
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容