python語言中的正規表示式

2021-09-11 10:31:54 字數 3205 閱讀 6334

序號

常用函式意義1

re.match(『regex』, content)

按正規表示式regex規則,從頭開始匹配文字content

2result.group(number)

匹配子表示式,number表示子表示式在正規表示式中的位置

3result.span()

輸出結果在正規表示式中的索引範圍

4修飾符re.s,re.i等

re.s使.匹配包括換行符在內的所有字元,re.i忽略正規表示式中字母的大小寫

5re.search(『regex』, content, re.s)

不是從頭開始時匹配,而是掃瞄整個字串,返回第乙個成功匹配的結果

6re.compile(『regex』))

返回乙個正規表示式物件,以在後面繼續復用該物件

按正規表示式regex規則,從頭開始匹配文字content,並返回成功匹配的內容。

import re

content =

'hello 123 4567 world_this is a regex demo'

result = re.match(

'^hello\s(\d\s\d)\sworld'

, content, re.i)

print

(result)

print

(result.group())

print

(result.group(1)

)print

(result.span(

))

輸出結果:

<_sre.sre_match object; span=

(0, 20), match=

'hello 123 4567 world'

>

hello 123 4567 world

123 4567

(0, 20)

不是從頭開始時匹配,而是掃瞄整個字串,返回第乙個成功匹配的結果

import re

content =

'''

'''

result = re.search(

'.+(?=:)'

, content)

print

(result)

print

(result.group())

print

(result.span(

))

輸出結果:

(0, 4)掃瞄整個字串返回乙個列表,包含所有成功匹配的結果。

import re

content =

'''content is decided into two sections:

information about macromedia coldfusion.information about bluetooth, 802.11, and more.替換匹配到的文字

import re

content =

'''hello, [email protected] is my email address'''

result = re.sub(

'(\w+[\w\.]*@[\w\.]+\.\w+)'

,'$1'

, content)

print

(result)

輸出結果:

hello, "mailto:$1"

>

$1 is my email address

re.sub不能使用正規表示式中的回溯引用來替換原文本,只能簡單替換。解決方案:將替換文字裡面的回溯引用$1替換為搜尋到的字串。如下:

import re

content =

'''hello, [email protected] is my email address'''

searchresult = re.search(

'(\w+[\w\.]*@[\w\.]+\.\w+)'

, content)

subresult = re.sub(

'(\w+[\w\.]*@[\w\.]+\.\w+)'

,'+searchresult.group()+

">"

+searchresult.group()+

'"', content)

print

(subresult)

輸出結果:

hello, "mailto:[email protected]>[email protected]"

is my email address

返回乙個正規表示式物件,以在後面繼續復用該物件

import re

content1 =

'''2016-12-15 12:00'''

content2 =

'''2016-12-17 12:55'''

content3 =

'''2016-12-22 13:21'''

pattern = re.

compile

('\d:\d'

)result1 = re.sub(pattern,

'', content1)

result2 = re.sub(pattern,

'', content2)

result3 = re.sub(pattern,

'', content3)

print

(result1, result2, result3)

輸出結果:

2016-12-15  2016-12-17  2016-12-22

Go語言中的正規表示式

語法 說明表示式例項 一般字元 匹配自身 abc 匹配abc 匹配任意除換行符 n 外的字元 a.b 轉義字元 a b 匹配a.b 字符集 字元類 對應的位置可以是字符集中任意字元,也可以給出範圍,如 abc 或 a c 第乙個字元為 則表示匹配除括號外其他的字元,所有特殊字元再字符集中都失去原有的...

C語言中嵌入正規表示式

標準的c和c 都不支援正規表示式,但有一些函式庫可以輔助c c 程式設計師完成這一功能,其中最著名的當數philip hazel的perl compatible regular expression庫,許多linux發行版本都帶有這個函式庫。c語言處理正規表示式常用的函式有regcomp regex...

C語言中的正規表示式實現

緣起於網易下屬某公司筆試的一道題目,用c c 實現乙個對 8 9 0 9 的正規表示式實現引擎。這道題目我做錯了,因為下意識地認為是 8 9 0 9 的表示式。回頭想想,如果不用正規表示式的庫,可以 trying to match 8 9 0 9 include include include in...