《正規表示式必知必會》讀書筆記1

2021-05-21 20:03:29 字數 3249 閱讀 6975

簡 單地說,正規表示式就是一些用來匹配和處理文字的字串。正規表示式是用正規表示式語言建立的。與其他程式語言一樣,正規表示式語言也有需要學習的特 殊語法和指令。但是,正規表示式語言並不是一種完備的程式語言,它甚至算不上是一種能夠直接安裝並執行的程式。準確地說,正規表示式語言是內置於其他 語言或軟體產品裡的「迷你」語言。

正規表示式的使用方法和具體功能,在不同的應用程式/語言中各有不同。一般來說,應用程式大多使用選單選項和對 話框來訪問正規表示式,而程式語言大都在函式或物件類中使用正規表示式。此外,並非所有的正規表示式實現都是一樣的。在不同的應用程式/語言裡,正則 表示式的語法和功能往往會有明顯(有時也不那麼明顯)的差異。

二.以例子說明正規表示式的語法和功能

進行操作的文字物件:

hello,my name is xyf.who are you?

regex.txt

segex.txt

megex.txt

reg1.txt

reg2.txt

rega.txt

regz.txt

正規表示式操作:

1.匹配純文字:xyf

結果:match    position    length

xyf         17            3

2.匹配任意字元:.e或者.e.

結果:(1)

match    position    length

he          0            2

me       11            2

re         26            2

re         34            2

ge        36            2

se        44            2

ge        46            2

re        54            2

re        63            2

re        72            2

re        81            2

(2)match    position    length

hel         0              3

me        11            3

re          26            3

reg        34            3

seg        44            3

reg        54            3

reg       63            3

reg       72            3

reg       81            3

注:符號.能匹配除換行符以外的任意乙個符號,包括自己本身。

如果你曾經使用過dos的檔案搜尋功能,你將發現正規表示式裡的.字元相當於dos的?字元。sql使用者將注意到正規表示式裡的.字元相當於sql中_(下劃線)字元。

3.匹配特殊字元:e./.txt

結果:match    position    length

ex.txt    37            6

ex.txt    47            6

注:由於一些特殊的符號在正規表示式中被賦予了特殊的專用功能,所以如果要在文字中匹配這個符號本身的話就必須用轉義符/,如果我們換個正規表示式e..那麼結果會是什麼呢?如下:

match    position    length

ell           1            3

e i         12            3

e y        27            3

ege       35            3

ege      45            3

ege      55            3

eg1      65            3

eg2      74            3

ega      83            3

egz      92            3

如果需要搜尋/本身,就必須對/字元進行轉義,相應的轉義序列是兩個連續的反斜槓字元//

4.匹配多個字元中的某乙個:[rms]egex.txt

結果:match        position    length

regex.txt     34           9

segex.txt     44           9

megex.txt    54          9

5.利用字元集合區間:reg[1-9a-z]/.txt

結果:match        position    length

reg1.txt      64           8

reg2.txt      73           8

rega.txt      82           8

regz.txt      91           8

如果換作reg[1-9]./txt則結果為:

match        position    length

reg1.txt      64           8

reg2.txt      73           8

6.取非匹配:reg[^1-9].txt

結果:match        position    length

rega.txt       82          8

regz.txt       91          8

注:^的效果將作用於給定字元集合裡的所有字元或者字元區間,而不是僅限於跟在^字元後面的那乙個字元或者字元區間。

在這個正規表示式測試器中預設是不區分大小寫的。如果測試器預設區分大小寫的話,比如在文字中有regex.txt和regex.txt,你可以用[r|r]egex.txt或者[rr]egex.txt來匹配。

(未完待續)

附(正規表示式測試器網頁**):

正規表示式必知必會

1 字元 語法說明 表示式可匹配 任意普通字元 匹配自身 abcabc 轉義字元 a b a b.匹配除了換行符以外的任何字元 相當於 w的加強版 w看下面一張表 可匹配空格 a c1b 字符集 可以都寫出來也可以寫個範圍如 a z 第乙個字元如果是 表示取反,如 a 表示a除外的所有字元,如果字符...

正規表示式必知必會

1.exactly n of the preceding element.只能匹配連續n個字元 n or more of the preceding element.可以匹配n,或任意大於n個連續字元。貪婪匹配,會盡量匹配多的字元 between m and n of the preceding e...

《正規表示式必知必會》閱讀筆記

最近由於工作需要,再讀了一遍 正規表示式必知必會 這樣一本小書,很快讀完了,對於正規表示式有更深的了解,的確很強大,值得學習。總結了一下,結果如下 正規表示式的兩個用途 搜尋和替換 匹配任何乙個單個的字元 字元集合區間 連字元 取非匹配 特殊元字元 b 回退 f 換頁符 n 換行符 r 回車符 t ...