精確正則查詢:\bhi\b
\b
是正規表示式規定的乙個特殊**(元字元),代表單詞的開頭或者結尾,就是單詞的分界處。只匹配乙個位置。
如果找的是「hi後面不遠處跟著的乙個lucy」,應該使用\bhi\b.*\blucy\b
.
是另乙個元字元,匹配「除了換行符以外的任意字元」。
*
也是元字元,不過既不是位置也不是字元,而是數量:指定其前邊的內容可以連續重複使用任意次,使整個表示式得到匹配。
所以.*
連在一起表示:任意數量的不包含換行的字元。
\bhi\b.*\blucy\b
的意思是:先是乙個單詞hi,然後是任意個任意字元(但不能換行),最後是lucy這個單詞。
舉例:0\d\d-\d\d\d\d\d\d\d\d
表示意思:以0開頭,然後是兩個數字,然後是乙個連字型大小「-」,最後是8個數字。
\d
是個新的元字元,匹配「一位數字(0,1,2,3.........)」
-
不是元字元,匹配其本身,「連字元」
另一種簡潔寫法:0\d-\d
,"\d"後面的表示前面的\d
必須連續重複匹配2次(8次)
\s
匹配任意的空白符,包括空格,製表符(tab),換行符,中文全形空格等。
\w
匹配"字母或數字或下劃線或漢字等"
\ba\w*\b
匹配「以字母a開頭的單詞,先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字,最後是單詞結束處(\b)」
\d+
匹配"乙個或更多連續的數字"。。+
匹配重複任意次(可能是0次),而+
匹配 重複1次或更多次。
?
重複0次或1次
\b\w\b
匹配剛好6個字元的單詞。
^
元字元匹配字串的開始。
$
元字元匹配字串的結束。
舉例:qq號(5到12位的數字)^\d$
表示"重複的次數不能少於5次,也不能多於12次"
查詢元字元本身時,使用\
比如查詢-
,\-
;查詢\
,\\
.
如果要匹配的內容沒有被預設出來,只需要在方括號裡列出它們就ok了。
[.?!]
匹配標點符號「.?!」
舉例:\(?0\d[)-]?\d
,匹配幾種**格式。
正規表示式裡的分枝條件指如果有好幾種規則,如果滿足其中任意一種規則都應該當成匹配。
具體用法是用|
把不同的規則分隔開。
舉例子:
0\d-\d|0\d-\d
:匹配兩種以連字型大小分隔的**號碼:一種是三位區號,8位本地號(如010-12345678),一種是4位區號,7位本地號(0376-2233445)。
查詢不屬於某個能簡單定義的字元類的字元。舉例「查詢除了數字以外,其他任意字元都行的情況」:\d
。。。注意是大寫字母
\w
:匹配任意不是字母,數字,下劃線,漢子的字元
\s
:匹配任意不是空白符的字元
\d
:匹配任意非數字的字元
\b
:匹配不是單詞開頭或結束的位置
[^x]
:匹配除了x以外的任意字元
]+>
:匹配用尖括號括起來的以a開頭的字串
記錄此文是檢驗自己對正則的掌握程度,也方便以後查閱。還有一些相關的知識,比如後向引用,零寬斷言等未列出。欲詳細了解的童鞋可以去查閱這篇部落格:正則表達30分鐘入門教程
正規表示式 入門基礎
如圖可獲得6個匹配結果 如圖當 匹配內容不以a開頭的話則無匹配結果 如圖當 匹配內容以czx開頭的話則匹配1個結果czx 如圖當 匹配內容以czx0開頭的話則匹配0個結果,必須字串以czx0開頭才能匹配接下來的內容。要求匹配的字串以czx結尾,如圖成功匹配乙個內容 如圖字串以0czx結尾故無法匹配 ...
正規表示式 基礎入門
字元講解 a z 匹配所有大寫字母 a z 表示所有小寫字母 w 匹配字母 數字 下劃線 n 匹配乙個換行符 匹配輸入字串的開始位置 匹配輸入字串的結尾位置 匹配前面的子表示式零次或多次 匹配前面的子表示式一次或多次 匹配前面的子表示式零次或一次 匹配確定的 n 次 至少匹配n 次 最少匹配 n 次...
python正規表示式,基礎入門
這裡實現起來會有點不準確,使用到了re.compile,這個後面講 print re.findall r sunck sunck is a good sunck print re.findall r a?asaa 每次只匹配乙個,有就a 沒有就 print re.findall r a asaa 每...