正則表達式的符號
-
正則表達式:用來做字符串查找、匹配、切割用的一種工具()
python對正則表達式的支持:提供了re模塊(python內(nèi)置模塊),包含字符串匹配、查找、切割等相關(guān)方法
fullmatch(正則表達式,需要匹配的字符串):用正則表達式來和字符串進行匹配,看是否能夠匹配成功
正則表達式:是一個符合正則規(guī)范的字符串
import re
if __name__ == '__main__':
注意:正則表達式的字符串,前面要加r來阻止轉(zhuǎn)義,因為正則表達式的符號中有很多帶
'\'的符號,其功能不是轉(zhuǎn)義,而是表示特殊的意義
1.. :匹配一個任意的字符
"""匹配了兩個任意字符的字符串"""
re_str = r'..'
"""匹配第一個字符是a第二個字符是b的字符串"""
re_str = r'ab'
"""匹配第一格字符是a第二格字符是任意字符的字符串"""
re_str = r'a.'
print(re.fullmatch(re_str,'ab'))
2. \w :匹配一個字符是字母、數(shù)字或者下劃線
"""匹配第一個字符是字母、數(shù)字或者下劃線,第二個字符還是字母、數(shù)字或者下劃線的字符串"""
re_str = r'\w\w'
print(re.fullmatch(re_str,'_9'))
re_str = r'\w.\w'
print(re.fullmatch(re_str,'_-_'))
3. \s: 匹配一個空白字符(空格,換行,制表符)
"""匹配第一個字符是a,第二個字符是空白,最后一個字符是b的字符串"""
re_str = r'a\sb'
print(re.fullmatch(re_str,'a\nb'))
4. \d 匹配一個數(shù)字字符
re_str = r'\d\d\d'
print(re.fullmatch(re_str,'123'))
"""匹配第一個字符是0,后面兩個字符都是數(shù)字的字符串"""
re_str = r'0\d\d'
print((re.fullmatch(re_str,'019')))
5. \b 檢測邊界(單詞邊界---一般的符號都可以作為單詞邊界)
"""檢測三個任意字符的前面和后面都是單詞邊界的字符串"""
re_str = r'\b...\b'
print(re.match(re_str,'鳥鳥鳥,你好'))
6. ^ 匹配字符串開始(^The --- 匹配以The開頭的字符串)
re_str = r'^The'
print(re.fullmatch(re_str,'The'))
print(re.findall(r'^The','aThe789abc jThe9898ki'))
7. $ 匹配字符串結(jié)束
re_str = r'abc$'
print(re.findall(re_str,'abc'))
print(re.findall(re_str,'jkdjakdjakjsabc-'))
8. \W 匹配非字母、數(shù)字、下劃線
re_str = r'\W\w'
print(re.fullmatch(re_str,'&k'))
print(re.match(re_str,'*ksdsa'))
9. \S 匹配非空白字符
re_str = r'\S\d'
print(re.fullmatch(re_str,'11'))
print(re.match(re_str,'a2 1')) # match 必須從字符串開頭就開始匹配,否則None
10. \D 匹配非數(shù)字字符
"""匹配第一個字符是非數(shù)字字符,第二格字符是數(shù)字、字母、下劃線"""
re_str = r'\D\w'
11. \B 檢測非邊界
"""匹配前面兩個字符是a和b,第三個字符是c,并且b的后面是一個非邊界"""
re_str = r'ab\Bc'
print(re.fullmatch(re_str,'abc'))
print(re.match(re_str,'abc0'))