Python 正規表示式筆記(一)

2021-08-07 04:07:23 字數 2287 閱讀 4878

1.python的re模組

python的re模組是自帶的,並不需要額外的安裝。對於正規表示式的匹配模式是匹配正規表示式物件(regex物件)。

1.1 建立正規表示式物件:

使用re.compile(匹配字串模式)

例如:

numberregex=re.compile(r』\d*』)

1.2 對於regex物件使用search方法

regex物件的search方法返回乙個match物件

mo=numberregex.search(待匹配的文字)

1.3 使用match物件的group()方法獲取匹配的文字

mo.group()

1.3.1 使用括號進行分組

(\d\d\d)-(\d\d\d-\d\d\d)

其中前乙個括號內的內容為group(1),後乙個括號內容為group(2),一次性獲取所有的分組,可以使用groups()方法。

1.4 使用管道匹配多個分組

re.compile(r』a|b』)

這裡的「|」被我們稱之為管道,表示或的意思

1.5 使用問號實現可選匹配

re.complie(r』bat(wo)?man』)

1.6 使用星號*匹配零次或多次

1.7 使用花括號{}匹配待定次數

1.8 使用regex物件的findall()方法返回字串的列表

numberregex.findall(『待匹配的文字』)

2.貪心匹配與非貪心匹配

2.1 python預設的貪心匹配

在表示存在二義的情況下,python會盡可能的匹配最長的字串。

2.2 使用「?」來實現非貪心匹配

3.字元分類:

3.1 常用的一些縮寫字元

\d 0~9任何數字

\d 除0~9數字以外的任何字元

\w 任何字母,數字或者下劃線字元

\w 除字母,數字或者下劃線以外的字元

\s 空格,製表符或者換行符

\s 除空格,製表符和換行符以外的字元

3.2 定義自己的字元分類「[ ]」

將會匹配方括號內的任意字元,注意,此時方括號內的普通的正規表示式不會被解釋,方括號裡面的內容直接匹配出來的話都是單個的字元。

[^」文字」]在左括號的後面加上^表示除文字之外

3.3 插入字元^與美元字元在表

達式的開

始加上表

示以待匹

配的正則

表示式內

容開頭在

表示式的

末尾加上

表示以待匹配的正規表示式內容結尾

一般用於檢測文字的開頭與結尾,返回的是true 或者 false

3.4 通配字元」.」

3.4.1 可以匹配除了換行符以外的任意字元

3.4.2 使用(.*)匹配所有的字元

3.4.3 使用句點符匹配換行符

通過傳入re.datall作為re.compile()的第二個引數,可以讓句點字元匹配換行

例如:

newlineregex = re.compile(『.*』,re.datall)

newlineregex.search(『serve the public trust .\nprotect the innocent.』).group()

『serve the public trust .\nprotect the innocent.』

3.5 不區分大小寫的匹配

向re.compile()傳入re.ignorecase或者re.i作為第二個引數

3.6 用sub()方法替換字串

替換方法有兩種

(1) regex.sub(「想要替換成的字串」,」需要被替換的字串」)

(2) re.sub(「正規表示式」,」想要替換成的字串」,」需要被替換的字串」)

4.複雜的正規表示式

4.1 匹配複雜的文字模式,可能需要很長的費解的正規表示式,可以告訴正規表示式忽略正規表示式字串中的空白符和注釋,需要向re.compile()傳入變數re.verbose作為第二個引數

例如:

phoneregex=re.compile(r」』(

(\d|(\d))? #area code

(\s[-].)? #separator

\d (\s|-|.)

\d (\s*(ext|x|ext.)\s*\d)?

) 5.常見的一些匹配:

匹配中文:u」#[\w\u2e80-\u9fff]+#」

Python 正規表示式筆記

python 正規表示式筆記 正規表示式的先行斷言 lookahead 和後行斷言 lookbehind 正規表示式的先行斷言和後行斷言一共有4種形式 pattern 零寬正向先行斷言 zero width positive lookahead assertion pattern 零寬負向先行斷言 ...

Python筆記 正規表示式

1 如果直接給出字元,就是精確匹配。用 d可以匹配乙個數字,w可以匹配乙個字母或數字,可以匹配任意字元 00 d 可以匹配 007 但無法匹配 00a d d d 可以匹配 010 w w d 可以匹配 py3 py.可以匹配 pyc pyo py 2 要匹配變長的字元,在正規表示式中,用 表示任意...

Python 正規表示式 筆記

re 庫的 match 物件 re 庫的貪婪匹配和最小匹配 re,regex,regular expression 用簡潔形式表示了一組字串的特徵或模式,通用的字串表達框架。用前需要編譯,正規表示式由字元和操作符組成。表示任何單個字元 字符集,對單個字元給出取值範圍 非字符集,對單個字元給出排除範圍...