python3---正则表达式

正则介绍

  • Python中的正则,本质上式嵌入在python中的调的一种微小的,高度专业化的编程语言,可通过 re 这个内置模块获得。
  • 正则表达式模式几乎和shell中的一样,更接近 grep -P 的效果,因为Python中的 re 模块提供的是类似Perl语言中的正则表达式。
  • 正则表达式模式会被编译成一系列字节码,然后用C编写的匹配引擎执行。

友情提示:

  • 正则表达式语言相对较小且受限制,因此并非所有可能的字符串处理任务都可以使用正则表达是完成。
  • 还要一些任务 可以 用正则表达式完成,但表达式变得非常复杂。在这些情况下

特殊字符

More Actions正则特殊字符匹配内容
\w匹配单个字母、数字、汉字(shell中没有)或下划线 类似于 [a-zA-Z0-9_]
\d匹配单个数字 类似于 [0-9]
\s匹配单个任意的空白符,这等价于 [ \t \n \r \f \v]
\s匹配任何非空白字符, [ \t \n \f \v]

re 模块的方法

常用方法

match() 就看开头有没有

  • 只在整个字符串的起始位置进行匹配
    实例:
s = "isinstance qiang enumerate www.lwq.com 1998"
import re
In [4]: r = re.match("is\w+", s)

In [8]: r.group()  # 获取匹配成功的结果
Out[8]: 'isinstance'

search() 只查到第一个匹配的

  • 从整个字符串的开头找到最后,当第一个匹配成功后,就不再继续匹配
In [9]: r = re.search("a\w+", s)

In [10]: r.group()
Out[10]: 'ance'   

findall() 查到所有

  • 搜索整个字符串,找到所有匹配成功的字符串,比把这些字符串放在一个列表中返回。
In [16]: r = re.findall("a\w+", s)

In [17]: r
Out[17]: ['ance', 'angge', 'ate']

sub() 替换

  • 把匹配成功的字符串,进行替换。
# 语法:
"""
("a\w+",    "100",        s,     2)
匹配规则,替换成的新内容,  被搜索的对象, 有相同的话替换的次数

"""
In [24]: r = re.sub("a\w+", "100", s, 2)
  
In [25]: r
Out[25]: 'isinst100 l100 enumerate www.lwq.com 1998'

# 模式不匹配时,返回原来的值

split() 分割

  • 和 awk -F ‘[d]’ 一样效果,以匹配到的字符进行分割,返回分割后的列表
In [26]: s
Out[26]: 'isinstance lwq enumerate www.lwq.com  1998'

In [27]: r = re.split("a", s, 1)
  • 使用多个界定符分割字符串
>>> line = 'asdf fjdk; afed, fjek,asdf,  foo'
>>> import re
>>> re.split('[;,\s]\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

正则分组

  • 就是从已经成功匹配的内容中,再去把想要的取出来
In [26]: s ='isinstance qiang enumerate www.lwq.com  1998'

In [87]: r = re.search("is\w+\s(q\w+e)", s)  

In [88]: r.group()
Out[88]: 'isinstance qiang'

In [89]: r.groups()
Out[89]: ('qiang',)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值