re模块操作正则表达式(正则表达式本身是另外一种语言规范)
正则表达式:通过一个规则来从一段字符串中找到符合规则的内容//判断某段字符串是否符合规则
用处 :1. 注册页/网页上要求输入一个信息,判断输入的信息是否格式正确
2.爬取数据,从网页上把代码以字符串的形式下载,回到内存,提取这个大字符串中想要的内容
规则: 匹配 待匹配的字符串
正则规则:
1. 字符组:约束字符中某一个字符位置上的值是什么 , 只要是出现在字符组中的内容都算匹配到了.
2."[3-9]"从小到大的顺序是根据ASCII码的顺序来的
3.匹配数字[0-9]匹配字母[A-Za-z] 匹配数字和字母[0-9A-Za-z] [0-9a-fA-F]匹配十六进制
元字符:
. 除了 (换行)不能匹配其他都可以匹配.
d 匹配所有的数字
s 匹配空白符
w 匹配数字,字母,下划线.
匹配换行符
匹配制表符(Tab键)
匹配一个单词的两端
^ 匹配字符串的开始 (用法:放在要匹配字符的开始)
$ 匹配字符串的结尾 (用法:放在要匹配字符的结尾)
W 匹配非字母 ,数字 ,下划线 的下划线
S 匹配非空白符的字符串
D 匹配非数字的字符串
[....] 匹配字符组中的所有字符
[^...] 匹配非字符组中的所有字符
a|b 匹配字符a 或字符b 字符长的放在前面
() 匹配括号内的表达式,也表示一个组.
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n, } 重复n或更多次
{n,m} 重复n到m次
d+(.d+)? 匹配小数
d.+ 贪婪匹配 d.+? 非贪婪匹配
?在量词后面不表示量词,表示惰性,尽量少匹配.
d.*?x 意思是:从数字开始匹配,直到遇到x停下来.(前面取任意长度,直到一个x出现停下来)
贪婪匹配:正则表达式本身就是贪婪匹配的
惰性匹配:尽量少匹配,需要在量词的后面加上一个?,最常见的用法:.*?标识,表示匹配任意长度的字符遇到标识就立刻停止.
看正则表达式怎么区分?
找元字符,元字符后面如果出现量词,那么这个量词就是约束这个元字符出现的次数.如果元字符没有量词出现,表示匹配一次.如果量词后面有?表示惰性匹配.
r"\n" r" "
print("\n")
print("\\n")
print(r" ") #取消字符串中所有转义符的转义作用
print(r"\n")
在正则表达式中,涉及到特殊转义的内容,都放在 r""中.
在工具网页上匹配成功之后,在python中匹配不成功,匹配的字符串中又带有 "" 那么直接将测试好的内容都放在 r""中
正则表达式本身具有处理字符串的能力.
如果要处理的字符串存在python的内存里,通过re模块----->操作正则表达式