正規表示式 元字元

2021-09-07 21:39:13 字數 1161 閱讀 9580

1、正規表示式不包含元字元,就是純文字檢索

2、行的開頭與結尾 ^(脫字元)$(美元符),注意:^和$不是匹配具體的文字,而是匹配乙個位置

3、字元集合,如gr[ae]y, 首先匹配g, 下乙個是r, 下乙個是a或者e,最後乙個是y, 這裡的a和e表示乙個字元集合,匹配其中的任意乙個。如果想匹配小寫字母,使用[a-z],這裡的-連字元,是字元集合中的元字元,表示乙個範圍。

在字元集合中只有連字元,脫字元是元字元,並且連字元不在開頭,表示乙個範圍。在字元集合外,連字元只是乙個普通字元。

4、排除字元集合,比如[^u], 表示匹配乙個字元,這個字元不是u,也就是反向選擇。特別注意:q[^u] 不能匹配iraq,思考為什麼?

q[^u],匹配乙個字元,這個字元不是u,首先得條件是有乙個字元,二iraq後面沒有字元

5、用點號匹配任意字元,考慮下面的情況,查詢文件中的日期 2015-03-17,不確定日期的分隔符,也就是說可能是2015/03/17,也有可能是2015:03:17。因此正規表示式有兩種選擇:2015[-/:]03[-/:]17 或者2015.03.17 。使用前者,匹配更加準確,但是會漏掉2015|03|17。使用後者,匹配的情況更多,但是會匹配不準確,比如2015103117。因此,寫正規表示式,就是在準確程度和匹配範圍求得平衡。

6、區分空字元,空格字元,空白字元(包括空格字元,製表符,換行符)

7、多選結構,對於字元集合gr[ae]y,可以使用gr(a|e)y,當然也可以使用 (gray|grey)。注意字元集合和多選結構的區別,字元集合只能匹配乙個字元,多選結構可以是乙個任意的表示式,但是多選結構沒有字元集合的排除功能。

8、可選項? 出現一次,或者沒有出現

9、其他量詞 + 出現一次以上,*出現0次或者多次,a+等介於aa*

10、括號,括號的三中用處:限制多選項的範圍;將多個字元合成乙個單位,接受量詞的限制;反向引用。

比如,找出重複的abc abc ,(abc) \1【注意,(abc)與\1之間有個空格】,找出重複的abc。

找出重複的abcabc ,(abc)\1【注意,(abc)與\1之間沒有空格】,找出重複的abc。

([a-z])([0-9]) \1\2,找出重複的([a-z])([0-9])

11、轉義字元,在字元集合中開頭的脫字元(排除),非開頭連線符(表示範圍)是元字元,其他都不是元字元。在字元集合外,.*+() 需要進行轉義

正規表示式 元字元

現在你已經知道幾個很有用的元字元了,如 b 還有 d 當然還有更多的元字元可用,比如 s 匹配任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w匹配字母或數字或下劃線或漢字等。ba w b 匹配以字母a 開頭的單詞 先是某個單詞開始處 b 然後是字母a 然後是任意數量的字母或數字 w...

正規表示式 元字元

元字元 描述.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾 但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如...

正規表示式元字元

l 基本元字元 元字元說明 匹配任意單個字元 邏輯或操作符 定義乙個字元集合,匹配該集合中的乙個字元 對字元集合求非 是對整個集合求非,而不是緊挨著 符號的字元 在字元集合中定義乙個區間。如 a za z 對下乙個字元轉義。比如 n表示換行。數量元字元 元字元說明 匹配前乙個字元 子表示式 零次或多...