python的正規表示式

2021-08-10 19:08:35 字數 1998 閱讀 1519

1.python常用正規表示式

需要格外解釋的是分組,(?p…)省略的部分就是正常的正則匹配,我們把匹配到的這個整體給賦乙個變數名字

name

,在後續呼叫的時候,就方便多了,後面我們還會介紹。

2.正則物件和正則匹配效率比較

re模組,通過re模組的方法,把正規表示式

pattern

編譯成正則物件,以便使用正則物件的方法。那為什麼要使用

re模組來把正規表示式搞成正則物件呢,最主要的是可以提高**的執行效率。

比如:

import timeit

print timeit.timeit(setup='''import re; reg = re.compile('.*')''', stmt='''reg.match('')''', number=1000000)

print timeit.timeit(setup='''import re''', stmt='''re.match('.*', '')''', number=1000000)

結果為:

0.330698045532

0.840902419152

解釋:timeit.timeit是用來統計程式執行的時間的,和明顯第乙個

print

的執行時間要比第二個的執行時間快好多,這個就是把正則表達是表示成正則物件最明顯的好處。下面我們就可以看看如何把正規表示式轉換成正則物件

## 正規表示式 r 的含義

r表示raw

的簡及raw string

意思是原生字元,也就是說是這個字串中間的特殊字元不用轉義

比如你要表示『\n』,

可以這樣:

r'\n'

但是如果你不用原生字元

而是用字串你得這樣:『\\n』

3.編譯正則物件

import re

reg = re.compile(r'abc.*')

print(type(reg))

print(reg)

結果:

#正則物件

<_sre.sre_pattern object at>

這個方法是就是將字串的正規表示式編譯城正則物件,第二個引數flag是匹配模式,取值可以使用按位或者運算子「

|」表示同時生效,比如:

re.i | re.m

,flag

的可選值有:

re.i(re.ignorecase): 忽略大小寫(括號內是完整寫法,下同)

m(multiline): 多行模式,改變

'^'和

'$'的行為

s(dotall): 點任意匹配模式,改變

'.'的行為

l(locale): 使預定字元類

\w \w \b \b \s \s

取決於當前區域設定

u(unicode): 使預定字元類

\w \w \b \b \s \s \d \d

取決於unicode

定義的字元屬性

x(verbose): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。以下兩個正規表示式是等價的:

a = re.compile(r"""\d +  # the integral part

\. # the decimal point

\d * # some fractional digits""", re.x)

b = re.compile(r"\d+\.\d*")

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

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

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...

Python 正規表示式

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