西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → Python中正則表達(dá)式的使用

Python中正則表達(dá)式的使用

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/4/3 21:04:46字體大。A-A+

作者:佚名點擊:75次評論:0次標(biāo)簽: Python

《派森》(Python)3.13 win32 英文安裝版
  • 類型:編程工具大小:21M語言:英文 評分:8.7
  • 標(biāo)簽:
立即下載

元字符

1.匹配元字符:

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

2.重復(fù)元字符:

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

3.用 "\" 開始的預(yù)定義字符集

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

注:[akm$]將匹配字符"a", "k", "m", 或 "$" 中的任意一個;"$"通常用作元字符,但在字符類別里,其特性被除去,恢復(fù)成普通字符。

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() :返回匹配結(jié)束的位置
start,end = matchObject.span() :返回一個元組包含匹配 (開始,結(jié)束) 的位置

編譯標(biāo)志

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

使用心得

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

2.切勿重復(fù)編譯:放入全局空間或放入cell空間并實例出一個閉包實例

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)