正则表达式的符号
-
正则表达式:用来做字符串查找、匹配、切割用的一种工具()
python对正则表达式的支持:提供了re模块(python内置模块),包含字符串匹配、查找、切割等相关方法
fullmatch(正则表达式,需要匹配的字符串):用正则表达式来和字符串进行匹配,看是否能够匹配成功
正则表达式:是一个符合正则规范的字符串
import re
if __name__ == '__main__':
注意:正则表达式的字符串,前面要加r来阻止转义,因为正则表达式的符号中有很多带
'\'
的符号,其功能不是转义,而是表示特殊的意义
1..
:匹配一个任意的字符
"""匹配了两个任意字符的字符串"""
re_str = r'..'
"""匹配第一个字符是a第二个字符是b的字符串"""
re_str = r'ab'
"""匹配第一格字符是a第二格字符是任意字符的字符串"""
re_str = r'a.'
print(re.fullmatch(re_str,'ab'))
2. \w :匹配一个字符是字母、数字或者下划线
"""匹配第一个字符是字母、数字或者下划线,第二个字符还是字母、数字或者下划线的字符串"""
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 匹配一个数字字符
re_str = r'\d\d\d'
print(re.fullmatch(re_str,'123'))
"""匹配第一个字符是0,后面两个字符都是数字的字符串"""
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. $ 匹配字符串结束
re_str = r'abc$'
print(re.findall(re_str,'abc'))
print(re.findall(re_str,'jkdjakdjakjsabc-'))
8. \W 匹配非字母、数字、下划线
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 匹配非数字字符
"""匹配第一个字符是非数字字符,第二格字符是数字、字母、下划线"""
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'))