zoukankan      html  css  js  c++  java
  • python 正则表达式

    额,很厉害的一个表达式。要是有错误的地方,留个言,以便修改,如需转载,附带网址谢谢啦。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,这里的空格纯属是为了好看些。

    >>> 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 ) 

    >>> 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 默认是零,可以不写,表示全部替换

    >>> 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 没写完,明天或者后天再写了

  • 相关阅读:
    用Python学分析
    用Python学分析
    描述性统计指标
    用Python学分析
    Python练习:哥德巴赫猜想
    用Python学分析
    用Python学分析:集中与分散
    用Python学分析
    Ubuntu安装中文输入法
    Kali Linux ettercap的使用
  • 原文地址:https://www.cnblogs.com/lcchy/p/10139411.html
Copyright © 2011-2022 走看看