美文网首页
python正则表达式

python正则表达式

作者: 林聪色 | 来源:发表于2016-09-28 16:07 被阅读0次

    re模块

    pa=re.compile(r'imooc')#生成正则模板对象
    ma=pa.match(str)#用模板匹配字符串,返回正则对象
    ma.group()#将匹配的结果以字符串形式或元组形式返回
    ma.groups()#将匹配结果以元组形式返回
    ma.string#被匹配的字符串
    ma.span()#被匹配的部分的序列号
    pa=re.compile(r'imooc',re.I)#re.I表示大小写不敏感
    ma=re.match(r'imooc',str)#不用模板直接生成正则对象
    

    正则表达式语法

    • 匹配单个字符
      .#匹配任意字符
      [...]#匹配字符集中的任意一个字符
      \w#匹配任意一个单词字符[a-zA-Z0-9]
      \W#匹配任意一个非单词字符[^a-zA-Z0-9]
      \d / \D#匹配任意一个数字/非数字字符
      \s / \S#匹配任意一个空白/非空白字符

    • 匹配多个字符
      *#匹配前一个字符0次或无限次
      +#匹配前一个字符1次或无限次
      ?#匹配前一个字符0次或1次
      {m} / {m,n}#匹配前一个字符m次或m到n次

      *? / +? / ??#匹配模式变为非贪婪(尽可能少匹配)

    • 边界匹配
      ^#指定匹配必须出现在字符串的开头或行的开头
      $#指定匹配必须出现在以下位置:字符串结尾、字符串结尾的\n之前或行的结尾。
      \A / \Z#指定的字符串必须出现在开头/结尾

    • 分组匹配
      |#匹配左右任意一个表达式
      (ab)#括号中的表达式作为一个分组
      <number>#引用编号为num的分组匹配到的字符串(重复)
      (?P<name>)#给分组起一个别名
      (?P=name)#引用别名为name的分组匹配字符串(重复)

    re模块方法

    match#从字符串的开头开始查找匹配(返回正则对象#就是match对象)
    search#在字符串中进行查找匹配(返回正则对象)
    findall#查找所有匹配的值并返回一个列表
    sub#将字符串中匹配正则表达式的部分替换为其他值(返回字符串)
    eg:
      str='value=1000'
      re.sub(r'\d+','1001',str)
      >>'value=1001'
    其中第二个参数也可以为函数名,则匹配的部分函数处理后的返回结果将替换原来的部分
    split#用匹配到的部分来分割字符串,返回一个列表
    eg:
      re.split(r':| ','imooc:c c++ python java')
      >>['imooc','c','c++','python','java']

    相关文章

      网友评论

          本文标题:python正则表达式

          本文链接:https://www.haomeiwen.com/subject/gmbxyttx.html