zoukankan      html  css  js  c++  java
  • python之路——第二块(re模块)

    re模块,用于对python的正则表达式的操作。

    字符:

      . 匹配除换行符以外的任意字符
      w 匹配字母或数字或下划线或汉字
      s 匹配任意的空白符
      d 匹配数字
       匹配单词的开始或结束
      ^ 匹配字符串的开始
      $ 匹配字符串的结束

    次数:

      * 重复零次或更多次
      + 重复一次或更多次
      ? 重复零次或一次
      {n} 重复n次
      {n,} 重复n次或更多次
      {n,m} 重复n到m次

    首先,最常用的匹配方法有:

    re.match(pattern, string, flags=0)    从起始位置开始根据模型去字符串中匹配指定内容,匹配单个

    import re
    a = re.match("d","7a1234u123uu888asf123")
    print(a.group())
    

      结果是7,如果首字符不是数字,会报错,匹配不到

    • 正则表达式
    • 要匹配的字符串
    • 标志位,用于控制正则表达式的匹配方式

    re.search(pattern, string, flags=0)   根据模型去字符串中匹配指定内容,匹配单个

    import re
    a = re.search("d","a1234u123uu888asf123")
    print(a.group())
    

      结果是1,首字符是字母,也可以匹配得到

    re.findall(pattern, string, flags=0)    上述两中方式均用于匹配单值,即:只能匹配字符串中的一个,如果想要匹配到字符串中所有符合条件的元素,则需要使用 findall。

    import re
    a = re.findall("d","a1234u123uu888asf123")
    print(a)
    

      结果是['1', '2', '3', '4', '1', '2', '3', '8', '8', '8', '1', '2', '3'],以列表的形式输出,不用group。

    re.sub(pattern, repl, string, count=0, flags=0)    用于替换匹配的字符串

    import re
    c = "a1234u123uu888asf123"
    a = re.sub("d+","DZK",c)
    print(a)
    

      结果是aDZKuDZKuuDZKasfDZK,将所有匹配到的内容替换成DZK。

    re.split(pattern, string, maxsplit=0, flags=0)      根据指定匹配进行分组

    content = "1+2+3+4"
    new_content = re.split('+', content)
    print(new_content)
    

      结果是['1', '2', '3', '4'],这里的是转义符号,根据+号将匹配到的分开

    content = "1+2-3*4/5+6"
    new_content = re.split('[+-*/]', content)
    print(new_content)
    

      结果是['1', '2', '3', '4', '5', '6'],这里需要加上括号

  • 相关阅读:
    MVC模式-----struts2框架(2)
    MVC模式-----struts2框架
    html的<h>标签
    jsp脚本元素
    LeetCode "Paint House"
    LeetCode "Longest Substring with At Most Two Distinct Characters"
    LeetCode "Graph Valid Tree"
    LeetCode "Shortest Word Distance"
    LeetCode "Verify Preorder Sequence in Binary Search Tree"
    LeetCode "Binary Tree Upside Down"
  • 原文地址:https://www.cnblogs.com/japhi/p/6924875.html
Copyright © 2011-2022 走看看