Python正規表示式

2021-09-29 10:14:54 字數 3675 閱讀 2654

1. re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

import re

line

="this hdr-biz 123 model server 456"

pattern=r"123"

matchobj = re.match( pattern,

line

)

2. re.search 掃瞄整個字串並返回第乙個成功的匹配。

import re

line=

"this hdr-biz model server"

pattern=r"hdr-biz"

m = re.

search

(pattern, line)

3. python 的re模組提供了re.sub用於替換字串中的匹配項。

import re

line=

"this hdr-biz model args= server"

patt=r'args='

name = re.

sub(patt,

"", line)

4. compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。

import re

pattern = re.

compile

(r'\d+'

)

5. re.findall 在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。

import re

line=

"this hdr-biz model args= server"

patt=r'server'

pattern = re.

compile

(patt)

result = pattern.

findall

(line)

6. re.finditer 和 findall 類似,在字串中找到正規表示式所匹配的所有子串,並把它們作為乙個迭代器返回。

import re

it = re.

finditer

(r"\d+"

,"12a32bc43jf3"

)for match in it:

print (match.

group()

)

7.正規表示式模式語法中的特殊元素例項

描述[pp]ython

匹配 「python」 或 「python」

rub[ye]

匹配 「ruby」 或 「rube」

[aeiou]

匹配中括號內的任意乙個字母

[0-9]

匹配任何數字。類似於 [0123456789]

[a-z]

匹配任何小寫字母

[a-z]

匹配任何大寫字母

[a-za-z0-9]

匹配任何字母及數字

[^aeiou]

除了aeiou字母以外的所有字元

[^0-9]

匹配除了數字外的字元

#用空格分割

re.split

(r'\s+'

,'a b c'

)返回:[

'a',

'b',

'c',

'd']

#用逗號分隔

re.split

(r'[\s\,]+'

,'a,b, c d'

)返回:[

'a',

'b',

'c',

'd']

函式

說明sub(pattern,repl,string)

把字串中的所有匹配表示式pattern中的地方替換成repl

[^**]

表示不匹配此字符集中的任何乙個字元

\u4e00-\u9fa5

漢字的unicode範圍

\u0030-\u0039

數字的unicode範圍

\u0041-\u005a

大寫字母unicode範圍

\u0061-\u007a

小寫字母unicode範圍

sub()將匹配項替換為指定文字:

示例

import re

str =

"the rain in spain"

x = re.

sub(

"\s"

,"9"

, str)

print

(x)

替換前兩項:

示例

import re

str =

"the rain in spain"

x = re.

sub(

"\s"

,"9"

, str,2)

print

(x)

#過濾掉除了中文以外的字元

#coding=utf-8

import re

with open

('aaa.txt'

,'r'

,encoding=

"utf-8"

) as f:

#data = f.read().decode('gbk').encode('utf-8')

data = f.

read()

print

(data)

data = re.

sub(

'[\u4e00-\u9fa5]',""

, data)

print

(data)

# -

*- coding: utf-8-

*-import re

#提取字串中的中文

str =

"hello,world!!%[545]你好234世界。。。"

str = re.

sub(

"[a-za-z0-9\!\%\[\]\,\。]",""

, str)

print

(str)

#提取字串裡的中文,返回陣列

pattern=

"[\u4e00-\u9fa5]+"

regex = re.

compile

(pattern)

results = regex.

findall

("adf中文adf發京東方"

)print

(results)

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...