正则 不区分大小写_为什么要学正则表达式 7
在處理正字符串的時候,經常會有一些復雜規則的字符串需求,
正則表表達式就是描述這些規則的公工具。
換句話說。
正則表達式就是記錄文本規則的代碼。
上期咱們一起學習了正則表達式re模塊提供的match()方法為什么要學正則表達式 - 5
和search()方法為什么要學正則表達式 - 6今天我們來看看re模塊提供的另一個findall()方法對字符串的操作和在python中實際開發的應用。
使用search()方法匹配字符串
search()方法用于在整個字符串搜索所有符合正則表達式的字符串,并且以列表的形式返回。如果匹配成功。則返回包含匹配結果的列表,否則則返回空列表。
它的語法格式如下:
re.findall(pattern, strings, [flags])Hot
summer
參數:
pattern:表示模式字符串,由要匹配的正則表達式數轉換而來.。
strings:表示需要匹配的字符串。
flags:選擇參數,用于控制匹配方式。如是否區分字母大小寫等。
咱們來看一組例子:
我們搜索以s開頭的字符串,分別打印出不區分大小寫和區分大小寫的列表
pattern = r'S\w+' #匹配字符串規則string = 'Sixty school students seeing surprising sun snow scream, shout simultaneously' #要進行匹配的字符串match_obj = re.findall(pattern, string, re.I) #按照不區分大小寫的方式進行匹配print(match_obj)#['Sixty', 'school', 'students', 'seeing', 'surprising', 'sun', 'snow', 'scream', 'shout', 'simultaneously']string = r'學生Sixty school students seeing surprising sun snow scream, shout simultaneously'match_obj = re.findall(pattern, string) #按照區分大小寫的方式進行匹配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']從匹配的結果可以看出沒有得到我們想要匹配的結果,而是匹配到了'(\.[0-9{1,3}])'的結果。
這是因為在模式字符串中出現了分組!
如果想要獲取整個模式字符串中的匹配,需要將整個模式字符串使用一對小括號進行分組,這樣在獲取到正常的結果。
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')]好了今天的分享就到此了,這兩天內容很少很簡單,主要是為了讓我們可以更好地理解,明天咱們繼續干正則表達式!
—END—歷史消息Python 3.8 官網文檔(中文版附下載)Python爬蟲常用的三大庫之Request為什么要學正則表達式 - 1總結
以上是生活随笔為你收集整理的正则 不区分大小写_为什么要学正则表达式 7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天涯的大神们,进来帮我侄女取个名字吧,姓
- 下一篇: python控制手机发短信_python