python 正则表达式

1. 方法

参考内容菜鸟教程正则表达式

  • re.split(pattern, s):按patten对字符串分割,并返回分割后的列表。
  • re.match(pattern, s):参数flag(可选),必须从起始位置匹配字符串,匹配成功返回re.Match object,否则返回NoneType对象。可通过group()函数得到匹配的内容,span()函数得到匹配的索引起止位置。
  • re.search(pattern, s):参数flag(可选),遍历字符串,返回第一次匹配的对象re.Match object,否则返回NoneType对象。

match和search两者区别,re.match()针对起始位置,re.search()针对全局

  • re.sub(pattern, repl, s):将字符串里patten替换为repl,并返回匹配之后的结果。可选参数flag和count (count表示最多替换多少次,默认 0 表示替换所有的匹配)
  • re.compile(pattern):编译正则表达式,生成正则表达式对象,供matchsearch使用,具体存在的原因,从别的博客回复上看到下面这段话,主要用于提速

正则表达式其实是一个引擎,输入正则表达式,转换成机器码,机器码对输入字符串进行处理。compile处理之后的结果是机器码,每次调用只需要处理机器码对字符串,而不再用正则表达式对机器码,理论上更加节省时间。 例如i=l[0]之后只需要对i做对比,而不用对l[0]做对比,要知道每次l[0]他先要找到l,再找index0。而把他先赋值给i,就直接找i就行。至于到底节省了多少时间,后面用到i越多,就越能展现出其价值!

  • findall(s):经compile编译之后生成的正则表达式对象 可以调用的方法,以列表形式返回字符串里所有匹配的内容。
  • re.finditer(pattern, string):参数flag(可选),以迭代器形式返回字符串里所有匹配的内容。

2. 正则表达式语法

r字母前缀将字符串转变成原始字符串,忽略\转译的问题,若pattern里面没有\,可以不用

由于里面涉及到的语法较多,这里暂时列出个人比较熟悉和常用的,剩下的会在后面依次补充,也可以参考博客

  • re*:匹配0个或者多个
  • re+:匹配1个或者多个
  • .:匹配任意字符
  • ():代表分组
  • \d:匹配数字
  • \n:匹配换行符
  • [A-Z]:匹配大写字母A到Z,依此类推可以匹配a-z,0-9
  • |: 选择竖线左右两边的表达式进行匹配,匹配任意一个即可
  • \u4e00-\u9fa5: 汉字的范围
  • \W: 匹配非字母数字以及下划线
  • \w: 匹配字母数字及下划线
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值