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

    python的正则表达式模块re

    import re
    
    match_object=re.compile(r"")
    
    result=re.match(match_object,"resource string") 
    
    result=re.search(match_object,"resource string")
    
    result=re.findall(match_object,"resource string") # 注意区别
    
    match_object.match("resource string").group()
    
    match_object.search("resource string").group()
    
    match_object.findall("resource string")           #上下两种方式任选一种,findall是返回列表
    print result.group()
    

    match()与search()的区别:

    match是从源字符串的头部开始,仅当从第一个字符开始匹配成功,才能从字符串中匹配到目标字符串

    search是从源字符串任意位置开始匹配

    match和search的共同点是一旦匹配成功就返回,因而只会从源字符串中成功匹配一个目标字符串

    findall 是将源字符串中的所有匹配的目标字符串,以列表的形式返回

    match_object=re.compile(r"") # r 表示原字符串,比如存在""字符时,""不再表示转义的意思,而是 保持本身作为一个普通字符串的含义

    ""用在字符串中的意思是转义,例如"\n"不再表示换行符,而是普通字符" "

    print "
    "     #输出换行
    
    
    print "\n" 
    
                 #输出普通字符,没有换行意思
    print r"
    "    
    
                 #输出普通字符,没有换行意思
    print r"\n"
    \n            #输出普通字符

    match_object=re.compile(r"")

    匹配目标,正则表达式定义:

    "d{}"  "d"匹配数字,"{}"表示匹配的个数,{5}匹配5个,{1,}至少匹配1个,{3,8}匹配3至8个;

    "^" 以什么开始

    "$" 以什么结束

    "[0-9a-z]" 匹配[]中包含的一个字符

    "[^0-9]"    表示匹配非数字的字符串,"^"用在[]里面不再表示以什么开始,而是表示非

    "你|我|他"  "|"表示"或"的意思

    "?" 表示匹配次数要么为0,要么为1

    "*" 表示匹配任一次数,即是0次或0次以上

    "+"表示至少匹配一次

    "*?" 表示非贪婪匹配  即是尽可能少的匹配

    p = re.compile(r'woyouy*?')
    result = re.match(p, 'woyouyyyyyyy')
    print result.group()
    woyou
    

     "." 通配符,可以表示除换行以外的所有字符,如果加上re.DOTALL,使"."什么都可以匹配,还有re.IGNORECASE,re.VERBOSE

    re.VERBOSE 可以排除注释和空白字符

    p = re.compile(r'good.haha', re.DOTALL)
    result = re.findall(p, 'good
    haha')
    print  result
    ['good
    haha']
    
    p = re.compile(r'good.haha', re.IGNORECASE | re.DOTALL)
    result = re.findall(p, 'GOOD
    HahA')
    print result
    ['GOOD
    HahA']
    
    
    p = re.compile(r'''
        w+. # asdf
        w+''' #12
               ,re.IGNORECASE | re.DOTALL | re.VERBOSE)
    result = re.findall(p, 'GOOD
    HahA')
    print result
    ['GOOD
    HahA']

    "w" 表示匹配单词,它是包括数字的

    "s" 表示匹配空白/换行/制表符

    分割字符串:

    p = re.compile(r'd+')
     result = re.split(p, 'tom32jerry456haha')
    print result
    ['tom', 'jerry', 'haha']
    

     替换字符串:

    p = re.compile(r'd+')
    result = re.sub(p, 'replace', 'tom32jerry456haha')
    print result
    tomreplacejerryreplacehaha
    
  • 相关阅读:
    继承Runnable 实现Synchronized 同步锁
    SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
    Nginx采用yum安装-Carr
    SpringBoot idea maven打包war及运行war包
    根据现有PDF模板填充信息(SpringBoot)
    java后台简单从腾讯云下载文件通知前端以附件的形式保存
    java后台简单从阿里云上传下载文件并通知前端以附件的形式保存
    Security-OAuth2.0 密码模式之客户端实现
    Security-OAuth2.0 密码模式之服务端实现
    Redis-Java 交互的应用
  • 原文地址:https://www.cnblogs.com/wc554303896/p/7076733.html
Copyright © 2011-2022 走看看