PythonRegex的使用相關教程

來源:互聯網
上載者:User

PythonRegex簡單使用,

元字元

1.匹配元字元:

. 它匹配除了換行字元外的任何字元,在 alternate 模式(re.dotaLL)下它甚至可以匹配換行
^ 匹配行首。除非設定 MULTILINE 標誌,它只是匹配字串的開始。
$ 匹配行尾,行尾被定義為要麼是字串尾,要麼是一個換行字元後面的任何位置。
[] 它們常用來指定一個字元類別,所謂字元類別就是你想匹配的一個字元集
\ 反斜線後面可以加不同的字元以表示不同特殊意義。它也可以用於取消所有的元字元,這樣你就可以在模式中匹配它們了
| 可選項,或者 "or" 操作符。
() 一般情況下表示一個記憶組 (remembered group)。你可以利用 re.search 函數返回對象的 groups() 函數擷取它的值

2.重複元字元:

* 重複0或N次
+ 重複1或N次
? 重複0或1次
{m,n} 該限定符的意思是至少有 m 個重複,至多到 n 個重複

3.用 "\" 開始的預定義字元集

\d 匹配任何十進位數;它相當於類 [0-9]。
\D 匹配任何非數字字元;它相當於類 [^0-9]。
\s 匹配任何空白字元;它相當於類 [ \t\n\r\f\v]。
\S 匹配任何非空白字元;它相當於類 [^\t\n\r\f\v]。
\w 匹配任何字母數字字元;它相當於類 [a-zA-Z0-9_]。
\W 匹配任何非字母數字字元;它相當於類 [^a-zA-Z0-9_]。
\A 只匹配字串首。當不在 MULTILINE 模式,\A 和 ^ 實際上是一樣的。然而,在 MULTILINE 模式裡它們是不同的;\A 只是匹配字串首,而 ^ 還可以匹配在分行符號之後字串的任何位置。
\Z 只匹配字串尾。
\b 單詞邊界。這是個零寬界定符(zero-width assertions)只用以匹配單詞的詞首和詞尾。單詞被定義為一個字母數字序列,因此詞尾就是用空白符或非字母數字元來標示的。
\B 另一個零寬界定符(zero-width assertions),它正好同 \b 相反,只在當前位置不在單詞邊界時匹配。

註:[akm$]將匹配字元"a", "k", "m", 或 "$" 中的任意一個;"$"通常用作元字元,但在字元類別裡,其特性被除去,恢複成一般字元。

RegexObject(re)對象常用方法

matchObject=re.match(pattern,string,flag='0'):決定 RE 是否在字串剛開始的位置匹配
matchObject=re.search(pattern,string,flag='0'):掃描字串,找到這個 RE 匹配的位置
tuple=re.findall(pattern,string,flag='0') :找到 RE 匹配的所有子串,並把它們作為一個列表返回
matchObjectList=re.finditer(pattern,string):找到 RE 匹配的所有子串,並把它們作為一個迭代器返回

MatchObject對象的常用方法

findstring = matchObject.group() :返回被 RE 匹配的字串
i = matchObject.start() :返回匹配開始的位置
i = matchObject.end() :返回匹配結束的位置
start,end = matchObject.span() :返回一個元組包含匹配 (開始,結束) 的位置

編譯標誌

DOTALL, S :使 . 匹配包括換行在內的所有字元
IGNORECASE, I: 使匹配對大小寫不敏感
LOCALE, L :做本地化識別(locale-aware)匹配
MULTILINE, M: 多行匹配,影響 ^ 和 $
VERBOSE, X :能夠使用 REs 的 verbose 狀態,使之被組織得更清晰易懂

使用心得

1.先編譯後使用:re.compile('pattern')

2.切勿重複編譯:放入全域空間或放入cell空間並執行個體出一個閉包執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.