書上講的很儲蓄,開始沒有弄太明白。如果不弄明白,用的時候會非常苦惱。基於此,除了多多理解書本內容,又做了大量實踐,總算有點明白了,在此記錄一下。一來自己方便檢視,二來希望看到此文章的同仁,也能多一點對\b\b的理解。
\b,\b是單詞邊界,不匹配任何實際字元,所以是看不到的;\b是\b的非(補)。
\b:表示字母數字與非字母數字的邊界, 非字母數字與字母數字的邊界。
\b:表示字母數字與(非非)字母數字的邊界,非字母數字與非字母數字的邊界。
看下面例項:
import re #首先載入re模組。
re.split('123\\b','==123!! abc123. 123. 123abc. 123') #結果如下:
箭頭所指的地方就是分隔邊界,都是數字與非字母數字的邊界;同時看到'123abc'沒有被分隔,符合\b的意思。
箭頭所指的地方就是分隔邊界,'123\tabc'被分隔,這裡的'\t'是tab鍵(非字母數字)。
可以看到是四對分隔邊界,分別對應123前後的\b。
可以看到只有一對(一處)分隔邊界,前面箭頭表示非字母數字與數字的邊界,後面箭頭表示非字母數字與字母的邊界。
可以看到只有一對(一處)分隔邊界,前面箭頭表示非字母數字與數字的邊界,後面箭頭表示字母與非字母數字的邊界。
可以看到字串沒有被分隔
,是因為箭頭處的邊界表示非字母數字與非字母數字的邊界,不是\b的意思。
下面說一下\b。
可以看到有三個分隔邊界,都是字母與字母數字的邊界,'3pyc#','pyc'沒有被分隔,是因為字母與非字母數字的邊界。
箭頭處是分隔邊界,表示非字母數字與非字母數字的邊界,'1py=cthon','2py=342'沒有被分隔,是因為非字母數字與字母數字的邊界。
把上面介紹\b時沒有被分隔的例子,修改一下:
有一對(一處)分隔邊界,前面箭頭處表示非字母數字與數字的邊界,後面箭頭處表示非字母數字與非字母數字的邊界。都符合\b,\b的意思。
到這裡希望你能對\b,\b有一點更深入的理解。
正規表示式 b
b代表字與字中間那個看不見的東西,如 here is a word 那麼,這句中有好幾個 b,每個單詞的前後都有乙個 b.所以你用 bhere b 可以匹配上面這個here,但如果here 不是乙個單詞,而是乙個單詞的一部分,如 adheread,這樣的話,用here 可以匹配,用 bhere b就...
正規表示式 b
引用網上一段話 b 是正規表示式規定的乙個特殊 好吧,某些人叫它元字元,metacharacter 代表著單詞的開頭或結尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是 b 並不匹配這些單詞分隔字元中的任何乙個,它只匹配乙個位置。如果需要更精確的說法,b 匹配這樣的...
正規表示式 b
引用網上一段話 b 是正規表示式規定的乙個特殊 好吧,某些人叫它元字元,metacharacter 代表著單詞的開頭或結尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是 b 並不匹配這些單詞分隔字元中的任何乙個,它只匹配乙個位置。如果需要更精確的說法,b 匹配這樣的...