正則表示式之re模組compile()
阿新 • • 發佈:2019-02-03
定義:
.re.L(LOCALE): 使預定字元類 \w \W \b \B \s \S 取決於當前區域設定
5).re.U(UNICODE): 使預定字元類 \w \W \b \B \s \S \d \D 取決於unicode定義的字元屬性
6).re.X(VERBOSE): 詳細模式。這個模式下正則表示式可以是多行,忽略空白字元,並可以加入註釋
compile(pattern[,flags] ) 根據包含正則表示式的字串建立模式物件。
compile(pattern, flags=0)
通過help可以看到compile方法的介紹,返回一個pattern物件,但是卻沒有對第二個引數flags進行介紹。第二個引數flags是匹配模式,可以使用按位或’|’表示同時生效,也可以在正則表示式字串中指定。Pattern物件是不能直接例項化的,只能通過compile方法得到。匹配模式有:
1).re.I(re.IGNORECASE): 忽略大小寫
2).re.M(MULTILINE): 多行模式,改變’^’和’$’的行為
3).re.S(DOTALL): 點任意匹配模式,改變’.’的行為
4)
5).re.U(UNICODE): 使預定字元類 \w \W \b \B \s \S \d \D 取決於unicode定義的字元屬性
6).re.X(VERBOSE): 詳細模式。這個模式下正則表示式可以是多行,忽略空白字元,並可以加入註釋
例如:
pattern1 = re.compile(r”“”\d + #整數部分
. #小數點
\d * #小數部分”“”, re.X)
這裡正則表示式為三個”號引起來的多行字串,則將匹配模式設定為re.X 可以多行匹配。
函式re.compile將正則表示式(以字串書寫的)轉換為模式物件,可以實現更加有效的匹配。例子: import re text = "JGood is a handsome boy, he is cool, clever, and so on..." re.findall(r'\w*oo\w*', text) #查詢所有包含'oo'的單詞
- 1
- 2
- 3
- 4
- 5
使用compile函式:
匯入re模組:
import re
text = “JGood is a handsome boy, he is cool, clever, and so on…”
regex = re.compile(r’\w*oo\w*’)
print regex.findall(text) #查詢所有包含’oo’的單詞