python re.S
不使用re.S时,则只在每一行内进行匹配,如果存在一行没有,就换下一行重新开始,使用re.S参数以后,正则表达式会将这个字符串看做整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配
主要用在爬虫获取数据,例如:
import requests
import re
res = requests.get('https://sz.lianjia.com/ershoufang/pg1/')
resp = res.text
lines = re.findall('data-is_focus=""data-sl="">(.*?)data-lj_action_click_position',resp,re.S)
如果不带re.S,则获取不到完整的数据
理解举例:
import re
a = '''asdfhellopass:
123
worldaf
'''
b = re.findall('hello(.*?)world',a)
c = re.findall('hello(.*?)world',a,re.S)
print (b)
print (c)
输出结果:
[]
['pass:\n 123\n ']