前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 正则表达式

python 正则表达式

作者头像
Lokinli
发布2023-03-09 18:43:45
2600
发布2023-03-09 18:43:45
举报
文章被收录于专栏:以终为始

额,很厉害的一个表达式。要是有错误的地方,留个言,以便修改,如需转载,附带网址谢谢啦。By Mercury_Lc

正则表达式有很多的功能,比较常见的使用可以解决以下几种问题:

  • 查找字符串 str 是否包含一些子串 s 或者进行模式查找
  • 匹配符合要求的字符串,这里指可以是只要某种类型的,比如只要数字等
  • 替换,可以把字符串 str 中的子串 s 替换成 字符串 t
  • 分割,和匹配差不多的作用,不过是按某种要求来把原来的字符串 str 分割成多个字符串,可以存放到其他数据类型中

功能介绍及实现:

(用正则表达式,别忘记了 import re 因为它需要这个模块来支持她。)

1.  re.match

功能:从字符串 str 的起始位置开始匹配 s 是否是 str 的前缀,如果不是的就返回 none , 否则返回一串东西(称为对象),需要转换才可以得到我们想要的。

 格式: re.match(str, s, flags = 0)    「关于 flag 以后再说啦 这里的正则表达式为 浅谈 」

例如:str = "Hello Mercury_Lc" ,来看一下前缀是不是 Hello,这样子就可以直接用 re.match( ) 了。

# 注释一下:没有pycharm,QAQ,这里的空格纯属是为了好看些。

代码语言:javascript
复制
>>> import re   //需要导入这个模块

>>> str = "Hello Mercury_Lc"

>>> re.match("Hello",str)  // 单纯查到的

<_sre.SRE_Match object at 0x7f69299c5098>  

>>> re.match("Hello",str).span() // 转换成始末索引 span( )

(0, 5)
>>> re.match("Mercury_Lc", str)  // 这里因为没有找到,所以就没有输出了

>>> print(re.match("Mercury_Lc", str))  //输出一下,就是 None 

None

>>> re.match("Hello", str).group()  // 返回我们找的这个前缀,用到 group( )

'Hello'

>>> re.match("Hello", str).group(1)  // 加个参数,就可以返回多个啦(前提是有)
 
Traceback (most recent call last):    // 因为我们查找的就一个,所以就报错了
  File "<stdin>", line 1, in <module>
IndexError: no such group

2. re.search

功能:从字符串 str 全部的内容来匹配有没有符合字符串 s 的,如果有的话返回和 re.match( ) 是一样的操作,不过就是范围变大了,限制少了。

格式: re.search( str , s , flags = 0 ) 

代码语言:javascript
复制
>>> str = "Hello Mercury_Lc"  

>>> re.search("Mercury",str).span()  //从全部的字符串内容来匹配

(6, 13)

3. re.sub

功能:替换,把字符串 str 中的 s 替换成 t ,如果当前这个串里面有多个 s ,你也可以指定替换的次数。

格式:re.sub( s , t , str , count = 0)      // count 默认是零,可以不写,表示全部替换

代码语言:javascript
复制
>>> str = "Hi Mercury,I love you"  //原字符串

>>> str = re.sub("Mercury","chy",str,1) 把 Mercury 换成 chy,替换一次

>>> str

'Hi chy,I love you'

>>> str = "Hi Mercury,I love you"

>>> str = re.sub("Mercury","chy",str)  //不写,默认全部

>>> str

'Hi chy,I love you'

4.  compile 函数

功能:来编译一下你需要的匹配的模式串是什么样子的,这样后面用就方便了。(非官方解释Q_Q)

格式:re.compile( pattern [ , flags ] ) 

这里可选参数 [ , flags ] 可以规定一些东西,比如不区分大小写、多行匹配等。

5. re.findall

功能:字面意思,找到所有符合条件,直到遍历完所有的内容,返回的信息以列表的形式返回,如果没有找到,就返回空列表。

QWQ 没写完,明天或者后天再写了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能介绍及实现:
    • 1.  re.match
      • 2. re.search
        • 3. re.sub
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档