概述
- 正则表达式中常用的字符
符号 描述
. 匹配任意一个字符(除了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)
参数:
- pattern : 正则中的模式字符串。
- repl : 替换的字符串,也可为一个函数。
- string : 要被查找替换的原始字符串。
- count : 模式匹配后替换的最大次数,默认 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 : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
- re.I 忽略大小写
- re.L 表示特殊字符集 w, W, b, B, s, S 依赖于当前环境
- re.M 多行模式
- re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
- re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖于 Unicode 字符属性数据库
- re.X 为了增加可读性,忽略空格和 # 后面的注释
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())
#输出结果:
#<re.Match object; span=(0, 11), match='Hello World'>
#Hello World
#('Hello', 'World')
7、查找到了就打印:
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
import re
line = "Cats are smarter than dogs";
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print "match --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
print "search --> searchObj.group() : ", matchObj.group()
else:
print "No match!!"
最后
以上就是粗心画笔为你收集整理的Python笔记3-正则表达式的全部内容,希望文章能够帮你解决Python笔记3-正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复