在Python的正則表達(dá)式中行剂,有一個(gè)參數(shù)為re.S娃殖。它表示“.”(不包含外側(cè)雙引號(hào)仇冯,下同)的作用擴(kuò)展到整個(gè)字符串漾肮,包括“\n”扰法±医伲看如下代碼:
import re
a = '''asdfhellopass:
worldaf
'''
b = re.findall('hello(.?)world',a)
c = re.findall('hello(.?)world',a,re.S)
print 'b is ' , b
print 'c is ' , c
運(yùn)行結(jié)果如下:
b is []
c is ['pass:\n\t123\n\t']
正則表達(dá)式中啊犬,“.”的作用是匹配除“\n”以外的任何字符扩所,也就是說虎锚,它是在一行中進(jìn)行匹配硫痰。這里的“行”是以“\n”進(jìn)行區(qū)分的。a字符串有每行的末尾有一個(gè)“\n”窜护,不過它不可見效斑。
如果不使用re.S參數(shù),則只在每一行內(nèi)進(jìn)行匹配柱徙,如果一行沒有缓屠,就換下一行重新開始,不會(huì)跨行护侮。而使用re.S參數(shù)以后敌完,正則表達(dá)式會(huì)將這個(gè)字符串作為一個(gè)整體,將“\n”當(dāng)做一個(gè)普通的字符加入到這個(gè)字符串中羊初,在整體中進(jìn)行匹配滨溉。
參考鏈接:
Python正則表達(dá)式中的re.S的作用