正則表達基礎入門

2022-03-08 03:24:52 字數 2091 閱讀 3480

精確正則查詢:\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 每...