内容提要:
说明:仅供学习交流使用
二、python正则表达式中的特殊字符序列
\number \A \Z \b \B \d \D \s \S \w \W \\
2.1\number
以相同的序号代表的组所匹配的内容为 正则表达式,匹配该处的内容。注意:在使用的过程中,不要让python进行转义,即用原字符串的形式
#示例:
p=re.compile(r'(\d) (\w)(\w) \1 \2\3')
m=p.match('1 aA 1 aA')
print(m)
2.2 \A
只在字符串的开头匹配.
\Z
只匹配字符串的末尾.
# 示例:
p=re.compile(r'\Aab')
m1=p.match('abc')
# <re.Match object; span=(0, 2), match='ab'>
m2=p.match('cab')
# None
print(m1)
print(m2)
p=re.compile(r'.* ab\Z')
m1=p.match('c ab b')
m2=p.match('c ab')
print(m1)
# None
print(m2)
# <re.Match object; span=(0, 4), match='c ab'>
2.3 \b
单词的边界.
\B
非单词的边界.
# 示例:
p=re.compile(r'\btest\b')
m1=p.match('test1')
print(m1)
# None
m2=p.match('test.')
print(m2)
# <re.Match object; span=(0, 4), match='test'>
m3=p.match('test+')
print(m3)
# <re.Match object; span=(0, 4), match='test'>
p=re.compile(r'test\B')
m1=p.match('test12')
print(m1)
# <re.Match object; span=(0, 4), match='test'>
m2=p.match('testasdf')
print(m2)
# <re.Match object; span=(0, 4), match='test'>
m3=p.match('testABCV')
print(m3)
# <re.Match object; span=(0, 4), match='test'>
m4=p.match('test.')
print(m4)
# None
p=re.compile(r"\Bphone")
m1=p.search('phone phoneplus iphone telephone telegram')
print(m1)
# <re.Match object; span=(17, 22), match='phone'>
2.4 \d
匹配十进制的数字,等价于[0-9]
\D
匹配非十进制字符,等价于[^\d].
#示例:
print(re.match('\d+','123456'))
# <re.Match object; span=(0, 6), match='123456'>
print(re.match('\D+',r'fa-*/.dd'))
# <re.Match object; span=(0, 8), match='fa-*/.dd'>
2.5 \s
匹配任何空白字符,等价于[ \t\n\r\f\v]
\S
匹配任何非空白字符,等价于[^\s].
示例:
print(re.match('\s+','\t\n\r\f\v'))
# <re.Match object; span=(0, 5), match='\t\n\r\x0c\x0b'>
print(re.match('\S+','fasdfasdf2314234-+/*/'))
# <re.Match object; span=(0, 21), match='fasdfasdf2314234-+/*/'>
2.6 \w
匹配任何文字数字式字符,等价于[a-zA-Z0-9_]
\W
匹配\w的补集
示例:
print(re.match('\w+','test1_abc0'))
#<re.Match object; span=(0, 10), match='test1_abc0'>
print(re.match('\W+','+-*/\n\t\v'))
#<re.Match object; span=(0, 7), match='+-*/\n\t\x0b'>
2.7 \\
匹配反斜杠
#示例:
print(re.match(r'aa\\+',r'aa\\'))
#<re.Match object; span=(0, 3), match='aa\\'>