import re 匹配字符串
一、基础正则符号
是什么 | 数量 | 贪/非婪
^ \d * ? ^开始 ?非贪婪
二、相关函数
1.re.match() 过滤判断
匹配规则严格 带开头^和结尾?
^\d([a-zA-Z*]*)\d*$
[a-zA-Z] 匹配小写字母和大写字母
2.re.findall () 抽取
.匹配所有,除了换行符
+匹配1次或多次
re.S 一次性全部匹配,打印不分开
\d 匹配数字 \D匹配非数字
\w匹配数字、下划线、字母 \W匹配非数字、字母、下划线
\s匹配空白字符,\n、\t、\s \S匹配非空白字符
[^] 取反 [ ]? 没有贪婪含义,表示0次或1次
贪婪
所有匹配完成后再输出
import re
strs = "chsc^ep\ngcy06\t$uhis; uchs9\thi#suad"
result = re.findall('.+',strs,re.S) //re.S 一次性全部匹配,打印不分开
print(result) ['chsc^ep\ngcy06\t$uhis; uchs9\thi#suad']
result = re.findall('.+',strs) //遇到换行分开打印
print(result) ['chsc^ep', 'gcy06\t$uhis; uchs9\thi#suad']
非贪婪 ?
只要匹配到就输出
result = re.findall('.+?',strs,re.S)
print(result)
['c', 'h', 's', 'c', '^', 'e', 'p', '\n', 'g', 'c', 'y', '0', '6', '\t', '$', 'u', 'h', 'i', 's', ';', ' ', 'u', 'c', 'h', 's', '9', '\t', 'h', 'i', '#', 's', 'u', 'a', 'd']
3.自定义方法
1.抽取特殊字符
\W和\D一起是或的意思,非字母数字下划线或者非空白字符
result = re.findall('[^\w\s]+',strs,re.S)
print(result) ['^', '$', ';', '#']