1. 程式人生 > >python正則表示式詳解(二):特殊字元序列

python正則表示式詳解(二):特殊字元序列

內容提要:

說明:僅供學習交流使用

二、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\\'>