re.S、re.I、re.M

re.S (使 . 匹配包括換行在內的所有字符)

re.I(不區分大小寫)

 

 re.M(多行匹配)

^只匹配字符串的開頭,$只匹配字符串結尾,.不匹配換行符.
re.S做的事情是: 讓.也匹配換行符
re.M做的事情是: 讓^匹配每行的開頭,$匹配每行的結尾

import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

text = """First line.
Second line.
Third line."""

pattern = "^(.*?)$"  # Match anything from the start to end. 非貪婪匹配

# 讓^、$只匹配字符串的開頭、結尾, .不匹配換行符
ret1 = re.search(pattern, text)
print("ret1----%s", ret1)

# 讓.匹配換行符
ret2 = re.search(pattern, text, re.S)
print("ret2---%s",ret2.group())

# 讓^、$匹配每行的開頭、結尾, 同時讓.匹配換行符, 且pattern是非貪婪匹配
ret3 = re.search(pattern, text, re.M | re.S)
print("ret3----%s",ret3.group())

# 讓^、$匹配每行的開頭、結尾, 同時讓.匹配換行符, 且pattern是貪婪匹配
ret4 = re.search("^(.*)$", text, re.M | re.S)
print("ret4----%s", ret4.group())

# 讓^、$匹配每行的開頭、結尾, 非貪婪
ret5 = re.findall(pattern, text, re.M)
print("ret5----%s", ret5)

運行結果:

 

原文地址:https://www.jianshu.com/p/fe7441d9cc7b,如有侵權,請聯繫刪除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章