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,如有侵權,請聯繫刪除