符号 描述
. 匹配任意一个字符(除了\n)
[] 匹配列表中的字符
\w 匹配字母、数字、下划线,即 a-z,A-Z,0-9,_
\W 匹配不是字母、数字、下划线
\s 匹配空白字符,即空格(\n,\t)
\S 匹配不是空白的字符
\d 匹配数字,即 0-9
\D 匹配非数字的字符
^ 匹配字符串开头
$ 匹配字符串结尾。
\b 匹配一个单词的边界
\B 匹配非单词的边界
【注】^与[^m]中的“^”的含义并不相同,后者“^”表示“除了….”的意思
2、re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
3、贪婪模式指 Python 里数量词默认是贪婪的,总是尝试匹配尽可能多的字符。非贪婪模
式与贪婪相反,总是尝试匹配尽可能少的字符,可以使用"*","?","+","{m,n}"后面加上?,使
贪婪变成非贪婪
4、只配置中文
- s = "士大夫卡A 的24东走西顾堪"
- filtrate = re.compile(u'[^\u4E00-\u9FA5]')
- filtered_str = filtrate.sub(r'', s)
- print(filtered_str)
-
- #输出
- #士大夫卡的东走西顾堪
5、Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
re.sub(pattern, repl, string, count=0, flags=0)
参数:
- import re
-
- phone = "1-1452839475-4352 #Location oscar retwertqe"
-
- # 去掉location前面的字符
- num = re.sub(r'^.*[lL]ocation', "location", phone, 1)
- print("电话号码是: ", num)
-
- # 删除非数字(-)的字符串
- num = re.sub(r'\D', "", phone)
- print("电话号码是 : ", num)
6、re.compile 函数 :参考Python 正则表达式 | 菜鸟教程
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
re.compile(pattern[, flags])
参数:
pattern : 一个字符串形式的正则表达式
flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
- pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I) #re.I 忽略大小写
- m = pattern.match('Hello World Wide Web')
- print(m)
- print(m.group(0))
- print(m.groups())
-
- #输出结果:
- #
- #Hello World
- #('Hello', 'World')