一.什么是正则表达式?
一种匹配字符串的规则,正则表达式是一种独立的语法和python没有关系
二.正则表达式能做什么?
#可以定制一个规则
1.来确实某一个字符串是否符合规则
2.从大段的字符串中找到符合规则的内容
#程序领域
1.登录注册页的表单验证 web开发 要求简单语法
2.爬虫
3.自动化开发
字符组:[] 在一个字符的位置能出现的内容 [^]: 非字符组
例:
[1bc] 表示在一个位置上只能出现1或b或c
[0-9][A-Z][a-z] 匹配三个字符 第一个为0-9的数字 第二个为大写字母 第三个为小写字母
[0-9a-zA-Z] 表示一个字符可以是数字可以是大写或小写字母
d==[0-9] 也表示匹配一个字符,匹配的是一个数字
w==[0-9a-zA-Z]也表示匹配一个数字字母下划线
s==[ ] 包括回车空格和制表符tab
匹配回车
匹配制表符
D 匹配非数字
W 匹配非数字字母下划线
S 匹配非空白
[dD] 或 [wW] 或 [sS] 匹配所有
正则表达式语法
元字符
字符组 [] [^] | ()
|的用法[1-9]d{16}[0-9X]|[1-9d{14} 身份证号
()的用法[1-9]d{14}(d{2}[1-9X])? 身份证号
d(.d+)?小数或者整数
wds( , ) W D S
^ $
.
量词
? + *
{n},{n,},{n,m}
特殊的用法和现象
?的使用
在量词的后面跟了一个? 取消贪婪匹配 非贪婪(惰性)模式
??*?+?{n}?
最常用 .*?x 匹配任意字符直到找到一个x
总结:
元字符
元字符量词 默认贪婪匹配
元字符量词? 表示惰性匹配