开发者学堂课程【Python入门 2020年版:正则匹配规则】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10446
正则匹配规则
模式字符串使用特殊的语法来表示一个正则表达式:
1. 字母和数字表示他们自身,一个正则表达式模式中的字母和数字匹配同样的字符串。
re.search(r'H' , ' Hello ')
这里的H表示的就是字母H自身,代表有特殊含义
2. 多数字母和数字前加一个反斜杠时会拥有不同的含义。
ret = re.search(r ' ld ' , ' he12ms9e' )
这里的\d 表示的是匹配数字
3. 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
ret = re.search(r' . " , ' hello')
这里的﹒表示的是匹配任意字符
ret = re.search(r'l. ' , ' he.llo')
这里的\.进行了转义,才表示标点符号自身。
4. 反斜杠本身需要使用反斜杠转义。由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于t)匹配相应的特殊字符。
实例:
#数字和字母都表示它本身
#很多字母前面添加\会有特殊含义(重点)
#绝大多数标点符号都有特殊含义(重点)
#如果想要使用标点符号,需要在\
import re
字母 x 表示它本身
re.search(r'x', 'hello xyz ' )
re.search(r'5', '23r49534')
print(re.search(r'd', 'good '))
输出的结果为:
<re.Match object; span=(3
,4), match= 'd ' >
#字母 d 是普通的字符
print(re.search(r'ld', 'good' ))
输出的结果为:None
\d 有特殊含义,不再表示字母 d
print(re.search(r'ld' . 'wsdfk4sdfil'))
输出的结果为:
<re.Match object; span=(5
,6), match='4'>
# re.search( '+','1+2')
#不能查接使用,+有特殊含义
print(re.search(r'1+', '1+2'))
输出的结果为:
<re.Match object; span=(1,2),match='+'>
匹配身份证:
r"[1-$]\d{5](18/9|20|)\d{2]((8[1-9])|(10]11/12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$'