1. 程式人生 > >python語言的自學之路3

python語言的自學之路3

python

正則匹配裏面方法分為兩種使用方法:

方法1:

import re

str = ‘i am a bad hero‘

re.search(‘am’,str)

re.match(‘am’,str)

re.findall(‘am’,str)

re.finditer(‘am’,str)

方法2:

import re

str = ‘i am a bad hero’

pat = re.compile(r‘am’) #r的意思是原生字符串

pat.match(str)

方法區別在於,當多次使用相同的匹配規則時,方法2由於compile已經緩存了匹配規則,所以執行多次的效率高於方法1.

原生字符串

假如你需要匹配文本中的字符"\",那麽使用編程語言表示的正則表達式裏將需要4個反斜杠"

\\\\”,

Python裏的原生字符串很好地解決了這個問題,這個例子中的正則表達式可以使用r"\\”表示,匹配一個數字的"\\d"可以寫成r"\d"。

re.compile(strPattern[, flag]):

這個方法是Pattern類的工廠方法,用於將字符串形式的正則表達式編譯為Pattern對象。

第二個參數flag是匹配模式,取值可以使用按位或運算符‘|‘表示同時生效,比如re.I | re.M。

另外,你也可以在regex字符串中指定模式,

比如re.compile(‘pattern‘, re.I | re.M)與re.compile(‘(?im)pattern‘)是等價的。

可選值有:

re.I(全拼:IGNORECASE): 忽略大小寫(括號內是完整寫法,下同)

re.M(全拼:MULTILINE): 多行模式,改變‘^‘和‘$‘的行為(參見上圖)

re.S(全拼:DOTALL): 點任意匹配模式,改變‘.‘的行為

re.L(全拼:LOCALE): 使預定字符類 \w \W \b \B \s \S 取決於當前區域設定

re.U(全拼:UNICODE): 使預定字符類 \w \W \b \B \s \S \d \D 取決於unicode定義的字符屬性

re.X(全拼:VERBOSE): 詳細模式。這個模式下正則表達式可以是多行,忽略空白字符,並可以加入註釋

以下兩個正則表達式a和b是等價的:

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

\. # the decimal point

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

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


本文出自 “一杯開心茶” 博客,請務必保留此出處http://ggwhsd.blog.51cto.com/13135051/1955729

python語言的自學之路3