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'}
  • 相关阅读:
    svn问题(队列)
    linux的七大运行级别及级别修改
    Elasticsearch配置文件说明
    openstack-swift云存储部署(二)
    openstack-swift云存储部署(一)
    今天发现一些很有意思的ubuntu命令
    python使用xlrd 操作Excel读写
    Python初记
    SQL Server常用命令
    SQL Server 流程控制
  • 原文地址:https://www.cnblogs.com/jkklearn/p/11868050.html
Copyright © 2011-2022 走看看