re.S
re.S用法
re.S的作用:
不使用re.S时,则只在每一行内进行匹配,如果存在一行没有,就换下一行重新开始,使用re.S参数以后,正则表达式会将这个字符串看做整体,在整体中进行匹配,一般在爬虫项目中会经常用到。
例:
1 import re 2 a = """This is 3 a*webspider*item! 4 maoyanmovierank""" 5 6 b = re.findall('a(.*?)item',a) 7 c = re.findall('a(.*?)item',a,re.S) 8 print (b) 9 print(c)
输出结果:
1 b:[] 2 c:['webspider']
这里的re.S代表使正则表达式(‘a(.*?)item’)中的"." 匹配包括换行在内的所有字符(.本身不包括换行符:\n\r)
下面为re模块的一些修饰符:
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如
re.I | re.M 被设置成 I 和 M 标志
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和 # 后面的注释