python正则表达式特殊字符

python正则表达式特殊字符

1、(?=…):向前断言lookahead assertion是正则表达式模式,用于匹配以模式结尾的字符串,但不包含模式字符。如:

#
pattern=r'[\w]+(?=Asimov)'
str1='IssacAsimov'
re.search(pattern,str1).group(0)
'Issac'

2、(?!…):与(?=…)相反,用于匹配以模式结尾的字符串。

3、(?<=…):向后断言positive lookbehind assertion是正则表达式模式,用于匹配以模式开头的字符串,但不包含模式字符。有一点要注意,模式的长度必须是固定的,不能是动态的,比如可以是abc或a|b,但不能是a*或a{3,4}。

4、(?<!…):与(?<=…)相反,用于匹配以模式开头的字符串。

5、{m,n}:匹配前面的重复字符m到n次,尽可能的多匹配。如a{3,5},对于字符串’aaaaaaaab’可以匹配到’aaaaab’,而不是’aaab’。

6、{m}:用于匹配精确的m次前置字符,如a{2}b,用于匹配‘aab’。

Comments are closed.