• Python 正则表达式进阶与实战


    • 元字符实战
      • 提前字符串中所有的数字或者非数字
          1. import re
          2. string = "1a2b3c4d5e"
          3. result = re.findall("[0-9]",string)
          4. print("这是result",result)
          5. result = re.findall("[0-3]",string)
          6. print("这是result",result)
          7. string = "1a2b3c4d5e6f7g8h9i10j"
          8. result = re.findall("[0-9]",string)
          9. print("这是result",result)
          10. 这是result ['1', '2', '3', '4', '5']
          11. 这是result ['1', '2', '3']
          12. 这是result ['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '0']
          13. string = "1a2b3c4d5e"
          14. result = re.findall("[^0-9]",string)
          15. print("这是result",result)
          16. result = re.findall("[^0-3]",string)
          17. print("这是result",result)
          18. string = "1a2b3c4d5e6f7g8h9i10j"
          19. result = re.findall("[^0-9]",string)
          20. print("这是result",result)
          21. 这是result ['a', 'b', 'c', 'd', 'e']
          22. 这是result ['a', 'b', 'c', '4', 'd', '5', 'e']
          23. 这是result ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
    • 字符集实战
      • 提前字符串中所有的数字或者非数字
          1. import re
          2. string = "1a2b3c4d5e"
          3. result = re.findall("\d",string)
          4. print("这是result",result)
          5. 这是result ['1', '2', '3', '4', '5']
          6. string = "1a2b3c4d5e"
          7. result = re.findall("\D",string)
          8. print("这是result",result)
          9. 这是result ['a', 'b', 'c', 'd', 'e']

          ​​​​​​​​​​​​​​​​​​​​​

    • 数量词实战
      • 提取大小写字母混合的单词
        •  
          1. import re
          2. string = "CuPT FroM SWupT"
          3. minlen = 3
          4. maxlen = 50
          5. result = re.findall("[a-zA-Z]"+"{" +str(minlen)+","+str(maxlen)+"}",string)
          6. print("这是result",result)
          7. 这是result ['CuPT', 'FroM', 'SWupT']

    • 边界匹配
      •  提取一串号码
        1. import re
        2. string = "15915930230212"
        3. minlen = 5
        4. maxlen = 20
        5. result = re.findall("\d"+"{" +str(minlen)+","+str(maxlen)+"}",string)
        6. print("这是result",result)
        7. 这是result ['15915930230212']

    •  组
        1. import re
        2. a = 'abcabcabcxyzabcabcxyzabc'
        3. result1 = re.findall('(abc){1}',a)
        4. result2 = re.findall('(abc){2}',a)
        5. result3 = re.findall('(abc){3}',a)
        6. print(result1)
        7. print(result2)
        8. print(result3)
        9. ['abc', 'abc', 'abc', 'abc', 'abc', 'abc']
        10. ['abc', 'abc']
        11. ['abc']

    • 常用正则表达式
      • 数字

        ^[0-9]$

        n位的数字

        ^\d{n}$

        至少n位的数字

        ^\d{n,}$

        m-n位的数字

        ^\d{m,n}$

        零和非零开头的数字

        ^(0|[1-9][0-9]*)$

        非零开头的最多带两位小数的数字

        ^([1-9][0-9]*)+(.[0-9]{1,2})?$

        带1-2位小数的正数或负数

        ^(\-)?\d+(\.\d{1,2})?$

        正数、负数、和小数

        ^(\-|\+)?\d+(\.\d+)?$

        有两位小数的正实数

        ^[0-9]+(.[0-9]{2})?$

        有1~3位小数的正实数

        ^[0-9]+(.[0-9]{1,3})?$

        非零的正整数

        ^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

        非零的负整数

        ^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

        非负整数

        ^\d+$ 或 ^[1-9]\d*|0$

        非正整数

        ^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

        非负浮点数

        ^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

        非正浮点数

        ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

        正浮点数

        ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

        负浮点数

        ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

        浮点数

        ^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

     

  • 相关阅读:
    USB-数据传输
    鸿蒙开发 之 ArkUI状态管理
    [electron]官方示例解析
    IDEA的常用设置
    华南理工大学控制工程考研经验分享
    外包干了9天,技术退步明显。。。。。
    [附源码]计算机毕业设计springboot校园招聘系统设计
    FPGA高端项目:图像采集+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持
    jquery jstree的懒加载
    【交易心态】MT4外汇交易秘籍:如何保持冷静应对波动市场?
  • 原文地址:https://blog.csdn.net/Chandler_river/article/details/127134719