python re.S

不使用re.S时,则只在每一行内进行匹配,如果存在一行没有,就换下一行重新开始,使用re.S参数以后,正则表达式会将这个字符串看做整体,将“ ”当做一个普通的字符加入到这个字符串中,在整体中进行匹配

主要用在爬虫获取数据,例如:

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: 123 ']

原文地址:https://www.cnblogs.com/like1824/p/12765907.html