正規表示式入門之位置匹配

2021-08-06 06:49:49 字數 1604 閱讀 7666

位置匹配用來解決在什麼地方進行字串匹配操作的問題。

例1

要求匹配文字裡的cat單詞

#文字

the cat scattered his food all over the room.

#正規表示式

cat

#結果 the

cat s

catteredhis food all over the room.

從結果來看,不僅是單詞cat,單詞scattered裡的cat也被匹配了,這不是我們想要的結果。能夠正確解決這個問題的辦法只有使用邊界限定符。

限定符\b指定單詞邊界。顧名思義,\b用來匹配乙個單詞的開始或結尾。\b匹配的是這樣乙個位置,這個位置位於乙個能夠用來構成單詞的字元(也就是與\w相匹配的字元)和乙個不能構成單詞的字元(也就是與\w相匹配的字元)之間。

例2

#文字

the cat scattered his food all over the room.

#正規表示式

\bcat\b

#結果

the

cat scattered his food all over the room.

這樣,就達到了我們的預期目標。注意,\bcat\b匹配到的字元長度是3個而不是5個。

如果不匹配乙個單詞邊界,請使用\b。

例2

#文字

please enter the nine-digit id as it

#正規表示式

\b-\b

#結果- coded pass-key.

\b-\b將匹配乙個前後都不是單詞邊界的連字元,nine-digit和pass-key中的連字元不能與之匹配,但是color – coded中的連字元可以。

單詞邊界可以用來進行與單詞有關的位置匹配。字串邊界有著類似的用途,只不過是用來進行與字串有關的位置匹配而已。

用來定義字串邊界的元字元有兩個:乙個用來定義字串開頭的^,另乙個用來定義字串結尾的$。

例1

#文字

<?xml version='1.0' encoding='utf-8' ?>

...<?xml version='1.0' encoding='utf-8' ?>

...

#正規表示式

^\s*<\?xml.*\?>

#結果

<?xmlversion='1.0' encoding='utf-8' ?>

<?xml version='1.0' encoding='utf-8'?>

...由結果可知,因為有^的存在,所以只匹配了第一行的<?xml version='1.0' encoding='utf-8' ?>,第三行並未匹配。

^\s*匹配乙個字串的開頭位置和隨後的零個或者多個空白字元。

正規表示式匹配位置速查

正則是匹配模式,要麼匹配字元,要麼匹配位置。下表是匹配位置的元字元 位置 模式說明 匹配開頭的位置,當正則有修飾符 m 時,表示匹配行開頭位置 匹配結尾的位置,當正則有修飾符 m 時,表示匹配行結尾位置 b匹配單詞邊界,即,w 與 w 與 w w 與 之間的位置 b匹配非單詞邊界,即,w 與 w w...

正規表示式入門之字元匹配

在前段時間進行文字挖掘練習的時候,不會使用正規表示式,深感不宜。所以這裡,我想趕緊學習一下正規表示式。注 本文是對 正規表示式必知必會 的複習。正規表示式是一些用來匹配和處理文字的字串,正規表示式語言用來構造正規表示式 最終構造出的字串就成為正規表示式 正規表示式語言並不是一種完備的程式語言,它甚至...

正規表示式入門之重複匹配

例1 比如我想匹配文字裡所有的郵箱 文字 文字 send e mail to tom and ada,their mailbox is 1944786548 qq.com and 18755518273 163.com,don t forget,green s mailbox is green.su...