zoukankan      html  css  js  c++  java
  • python 正则

    
    

    import re

    
    

    #re.match(pattern, string, flags=0)
    #flag 标志位,常用的re.I 忽略大小写匹配
    #re.findall(r"jink",text,re.I)

    
    

    text='''
    11helloworld22
    nimenhaoma
    shanxishengweinanshi
    tangyanluhello
    '''

    
    

    # 查找一个匹配项
    # search match fullmatch
    # search 查找任意位置匹配项
    # match 必须从字符串开头匹配
    # fullmatch 整个字符串与正则完全匹配 #只有python3

    
    


    print re.search(r".*hello.*",text).group() # 11helloworld22
    print re.match(r"nimen.*",text,re.I) ## None
    print(re.fullmatch(r"hello","hello",re.I).group())
    #output hello

    
    
    
    
    

    # 查找多个匹配项
    # findall 返回一个列表
    # finditer 返回一个迭代器

    
    

    print re.findall(r".*hello.*",text) #['11helloworld22', 'tangyanluhello']

    
    

    print re.finditer(r".*hello.*",text) #<callable-iterator object at 0x0000000002F35FC8>

    
    

    pattern=re.compile(r".*hello.*")
    for i in pattern.findall(text):
    print i
    for i in pattern.finditer(text):
    print i.group()

    
    

    # 分割 split

    
    

    for i in text.split(" "):
    print i

    
    

    for i in re.split(r" ",text):
    print i

    
    

    # str 本身支持split,支持不支持正则,
    # 根据实际情况使用,以上两种输出情况一致。

    
    
    
    
    

    #替换

    
    

    #str 本身支持replace,如果指定替换次数N(第三个参数),则最多替换N个
    name="jinkangkangello"
    print name.replace("kang","wen") #jinwenwenello
    print name.replace("kang","wen",1) #jinwenkangello

    
    

    pattern=re.compile(r'kang')
    #re.sub(pattern, repl, string, count=0, flags=0)
    # repl 替换string 中被pattern 匹配的字符,count 表示最大替换次数
    print re.sub(r'kang','wen',name) #jinwenwenello
    print re.sub(r'kang','wen',name,1) #jinwenkangello

    
    

    print pattern.sub('wen',name) #jinwenwenello
    print pattern.sub('wen',name,1) #jinwenkangello

     

    分组匹配 直接将匹配结果直接转为字典模式,方便使用。

    res = re.search(r"(?P<name>k.*g$)",a).groupdict()
    print res #输出 {'name': 'kang'}
  • 相关阅读:
    Top 10 Product Manager Skills To Boost Your Resume In 2021
    大数据知识梳理
    B端产品如何设计权限系统?
    华三盒式交换机MAC、ARP、Route性能表项参数查询
    中了传说中的挖矿病毒
    SqlServer 2019 事务日志传送
    docker中生成的pdf中文是方框的解决方案
    The Live Editor is unable to run in the current system configuration
    2021 面试题大纲
    五分钟搞定Docker安装ElasticSearch
  • 原文地址:https://www.cnblogs.com/jkklearn/p/11868050.html
Copyright © 2011-2022 走看看