正则 不区分大小写_为什么要学正则表达式 7
在處理正字符串的時(shí)候,經(jīng)常會(huì)有一些復(fù)雜規(guī)則的字符串需求,
正則表表達(dá)式就是描述這些規(guī)則的公工具。
換句話說。
正則表達(dá)式就是記錄文本規(guī)則的代碼。
上期咱們一起學(xué)習(xí)了正則表達(dá)式re模塊提供的match()方法為什么要學(xué)正則表達(dá)式 - 5
和search()方法為什么要學(xué)正則表達(dá)式 - 6今天我們來看看re模塊提供的另一個(gè)findall()方法對字符串的操作和在python中實(shí)際開發(fā)的應(yīng)用。
使用search()方法匹配字符串
search()方法用于在整個(gè)字符串搜索所有符合正則表達(dá)式的字符串,并且以列表的形式返回。如果匹配成功。則返回包含匹配結(jié)果的列表,否則則返回空列表。
它的語法格式如下:
re.findall(pattern, strings, [flags])Hot
summer
參數(shù):
pattern:表示模式字符串,由要匹配的正則表達(dá)式數(shù)轉(zhuǎn)換而來.。
strings:表示需要匹配的字符串。
flags:選擇參數(shù),用于控制匹配方式。如是否區(qū)分字母大小寫等。
咱們來看一組例子:
我們搜索以s開頭的字符串,分別打印出不區(qū)分大小寫和區(qū)分大小寫的列表
pattern = r'S\w+' #匹配字符串規(guī)則string = 'Sixty school students seeing surprising sun snow scream, shout simultaneously' #要進(jìn)行匹配的字符串match_obj = re.findall(pattern, string, re.I) #按照不區(qū)分大小寫的方式進(jìn)行匹配print(match_obj)#['Sixty', 'school', 'students', 'seeing', 'surprising', 'sun', 'snow', 'scream', 'shout', 'simultaneously']string = r'學(xué)生Sixty school students seeing surprising sun snow scream, shout simultaneously'match_obj = re.findall(pattern, string) #按照區(qū)分大小寫的方式進(jìn)行匹配print(match_obj)#['Sixty']注意
如果在指定的模式字符串中,包含分組。則返回與分組匹配的的文本列表。
請看下例:
pattren = r'[1-9]{1,3}(\.[0-9]{1,3}){3}'str = '127.0.0.1 192.16.8.66'match_obj = re.findall(pattren, str)print(match_obj)#['.1', '.66']從匹配的結(jié)果可以看出沒有得到我們想要匹配的結(jié)果,而是匹配到了'(\.[0-9{1,3}])'的結(jié)果。
這是因?yàn)樵谀J阶址谐霈F(xiàn)了分組!
如果想要獲取整個(gè)模式字符串中的匹配,需要將整個(gè)模式字符串使用一對小括號(hào)進(jìn)行分組,這樣在獲取到正常的結(jié)果。
pattren = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'str = '127.0.0.1 192.16.8.66'match_obj = re.findall(pattren, str)print(match_obj)#[('127.0.0.1', '.1'), ('192.16.8.66', '.66')]好了今天的分享就到此了,這兩天內(nèi)容很少很簡單,主要是為了讓我們可以更好地理解,明天咱們繼續(xù)干正則表達(dá)式!
—END—?dú)v史消息Python 3.8 官網(wǎng)文檔(中文版附下載)Python爬蟲常用的三大庫之Request為什么要學(xué)正則表達(dá)式 - 1總結(jié)
以上是生活随笔為你收集整理的正则 不区分大小写_为什么要学正则表达式 7的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天涯的大神们,进来帮我侄女取个名字吧,姓
- 下一篇: 雨打枝掉泪的下一句是什么啊?