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

     

    符号 说明 举例
    literal 匹配字符串的值 foo
    re1|re2 匹配正则表达式re1或re2 foo|bar
    . 匹配任何字符(换行符除外) b.b
    ^ 匹配字符串的开始 ^Dear
    $ 匹配字符串的结尾 /bin/*sh$
    * 匹配前面出现的正则表达式0次或多次 [A-Za-z0-9]*
    + 匹配前面出现的正则表达式1次或多次 [a-z]+.com
    ? 匹配前面出现的正则表达式0次或多次 goo?
    {N} 匹配前面出现的正则表达式N次 [0-9]{3}
    {M,N} 匹配重复出现M-N次的正则表达式 [0-9]{5,9}
    [...] 匹配字符组里出现的任意一个字符 [aeiou]
    [..x-y..] 匹配从字符x到y中的任意一个字符 [0-9],[A-Za-z]
    [^...] 不匹配此字符集中出现的任何一个字符,
    包括某一范围的字符
    [^A-Za-z0-9_]
    (*|+|?|{}) 用于上面出现的任何"非贪婪"版本
    重复匹配次数符号(*,+,?,{})
    .*?[a-z]
    (...) 匹配封闭括号中正则表达式(RE),并保持为子组 ([0-9]{3})?,f(oo|u)bar
         
         
    特殊符号    
    d 匹配任何数字,和[0-9]
    (D 是d 的反义:任何非数符号)
    datad+.txt
    w 匹配任何数字字母字符
    (W 是w 的反义)
    [A-Za-z_]w+
    s 匹配任何空白符,和[ vf]
    (S 是s 的反义)
    ofsthe
     匹配单词边界
    (B 是 的反义)
    The
    n 匹配已保存的子组 price: 16
    c 逐一匹配特殊字符c .,\,*
    A() 匹配字符串的起始(结束) ADear
         
         
         
    常见的正则表达式函数与方法    
    compile(pattern,flags=0) 对正则表达式pattern进行编译,并返回一个regex对象  
    match(pattern,string,flags=0) 用正则表达式pattern匹配字符串string,
    匹配成功返回匹配对象,否则返回None
     
    search(pattern,string,flags=0) 用正则表达式pattern匹配字符串string的第一次出现,
    匹配成功返回匹配对象,否则返回None
     
    findall(pattern,string[,flags]) 在字符串string中查找正则表达式模式pattern的所有(非重复)出现,
    返回一个匹配对象的列表
     
    finditer(pattern,string[,flags]) 搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器  
    split(pattern,string,max=0) 将string 按pattern模式分割后返回列表。
    max用于指定最大分割次数,不指定将全部分割。
     
    sub(pattern,rep1,string,max=0) 使用repl替换string中每一个匹配pattern的子串后返回替换后的字符串。  
    group(num=0) 返回全部匹配对象  
    groups() 返回一个包含全部匹配的子元组的元组  

     

    关于贪婪匹配和非贪婪匹配举例:

     1 import re
     2 
     3 data='Thu Nov 29 01:14:11 2001::sbitp@mjuoeyjb.org::6777874277-5-8'
     4 
     5 
     6 #非贪婪匹配
     7 patt4='.+?(d+-d+-d+)'
     8 m=re.match(patt4, data)
     9 print(m.group(1))
    10 
    11 #贪婪匹配
    12 
    13 patt5='.+(d+-d+-d+)'
    14 m=re.match(patt5, data)
    15 print(m.group(1))

    输出结果:

    6777874277-5-8
    7-5-8

     

  • 相关阅读:
    基于Appium的自动化case开发及case分层结构设计
    功能自动化接入持续集成方案
    Windows上部署Appium自动化测试框架
    Mac上部署Appium测试框架
    Appium原理简述
    开篇
    数据结构和算法动态可视化
    Request实现简易注册登录
    过滤器解决中文乱码
    简易登录拦截(没有登录前直接访问主页则跳转到登录页)
  • 原文地址:https://www.cnblogs.com/nzyjlr/p/4236176.html
Copyright © 2011-2022 走看看