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

    import re

    re.findall('xx','xxxx')

    re.search('xx','xxx').group() 只匹配一个

    re.match('xx','xxx') 起始位置匹配

    ?非贪婪匹配

    元字符    .     ^ $       * + ?{}    []      

    . 通配符

    ^ 在字符串开头

    $ 在字符串结尾

    * 匹配0次到多次

    + 1到多次

    ?0到1次

    {} 固定次数,可一个参数或2个区间参数

    [] 字符集 或者的意思[a-z],如果[^1-9]非数字,^是 非 的意思

    去除特殊功能;跟普通字符实现特殊功能;引用序号所在的字组所匹配的字符串  

      d 数字

      w 数字和字母

      s 空格

       abc 匹配字符和特殊字符的位置 

    第三个参数标志位

    re.I 对大小写不敏感

    re.S

    re.sub(原来,新的,字符串) 替换

    xx = re.compile(规则)

    xx.findall(text)

    xx.split(text)

    re.findall('www.(baidu|laonanhai).com','sfdagdg www.baidu.com') ==>baidu

    re.findall('www.(?:baidu|laonanhai).com','sfdagdg www.baidu.com') ==>www.baidu.com

    1 import re
    2 
    3 origin = 'hello ,adklfkl ndngdngkn englkng 139i24 dgnkl '
    4 r = re.match('(?P<n1>h)(?P<n2>w+)',origin)
    5 print(r.groupdict()) #获取模型中匹配到的分组中所有执行了Key的组,变成字典 {'n1': 'h', 'n2': 'ello'}
    6 print(r.group()) #获取匹配到的所有结果 hello
    7 print(r.groups()) # 获取模型中匹配到的分组的结果 ('h', 'ello')

     flags

    • re.I(IGNORECASE)忽略大小写,括号内是完整的写法
    • re.M(MULTILINE)多行模式,改变^$的行为
    • re.S(DOTALL)点可以匹配任意字符,包括换行符
    • re.L(LOCALE)做本地化识别的匹配,不推荐使用
    • re.U(UNICODE) 使用w W s S d D使用取决于unicode定义的字符属性。在python3中默认使用该flag
    • re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释
    oringin = 'sfbdfjkbdkf21342gdsdjgndjgbkj556435ssjf5413515djkfb'
    hehi,count = re.subn('d+','KKK',oringin)
    print(hehi,count)
    #sfbdfjkbdkfKKKgdsdjgndjgbkjKKKssjfKKKdjkfb 3
  • 相关阅读:
    全链路压测(1):认识全链路压测
    碎片式的技术笔记
    聊聊传统压测和全链路压测的区别
    生产全链路压测常态化方案
    C++选择文件打开方式的函数
    常用的一些 git 命令
    MyBatis 批量插入数据的 3 种方法!
    MyBatis Plus 批量数据插入功能,yyds!
    什么是可中断锁?有什么用?怎么实现?
    1.3w字,一文详解死锁!
  • 原文地址:https://www.cnblogs.com/Erick-L/p/6404156.html
Copyright © 2011-2022 走看看