add:https://my.oschina.net/o0Kira0o/blog/138516
括号的相关内容
普通型括号
(...) 普通捕获型括号,可以被\number引用。
扩展型括号
(?aiLmsx)
a re.A
i re.I #忽略大小写
L re.L
m re.M
s re.S #点号匹配包括换行符
x re.X #可以多行写表达式
如:
re_lx = re.compile(r'(?iS)\d+$')
re_lx = re.compile(r'\d+',re.I|re.S) #这两个编译表达式等价
(?:......) #非捕获型括号,此括号不记录捕获内容,可节省空间
(?P...) #此捕获型括号可以使用name来调用,而不必依赖数字。使用(?P=name)调用。
(?#...) #注释型括号,此括号完全被忽略
(?=...) #positive lookahead assertion 如果后面是括号中的,则匹配成功
(?!...) #negative lookahead assertion 如果后面不是括号中的,则匹配成功
(?<=...) #positive lookbehind assertion 如果前面是括号中的,则匹配成功
(?<!...) #negative lookbehind assertion 如果前面不是括号中的,则匹配成功
#以上四种类型的断言,本身均不匹配内容,只是告知正则引擎是否开始匹配或者停止。
#另外在后两种后项断言中,必须为定长断言。
(?(id/name)yes-pattern|no-pattern)
#如有由id或者name指定的组存在的话,将会匹配yes-pattern,否则将会匹配no-pattern,通常情况下no-pattern可以省略。
没有评论:
发表评论