zoukankan      html  css  js  c++  java
  • 【python cookbook】【字符串与文本】6.以不区分大小写的方式对文本做查找和替换

    问题:以不区分大小写的方式对文本做查找和替换

    解决方法:使用re模块,并对各种操作都添加上re.IGNORECASE标记

    text='UPPER PYTHON,lower python,Mixed Python'
    
    print (re.findall('python',text,re.IGNORECASE))
    print (re.sub('python','snake',text,flags=re.IGNORECASE))
    >>> ================================ RESTART ================================
    >>> 
    ['PYTHON', 'python', 'Python']
    UPPER snake,lower snake,Mixed snake
    >>> 

    以上待替换的文本与匹配的文本大小写并不吻合,例如Python替换为snake,而非Snake。若要修正该问题,需使用一个支撑函数:

    import re
    
    text='UPPER PYTHON,lower python,Mixed Python'
    
    def matchcase(word):
        def replace(m):
            text=m.group()
            if text.isupper():
                return word.upper()
            elif text.islower():
                return word.lower()
            elif text[0].isupper():
                return word.capitalize()
            #capitalize()将字符串的第一个字母变成大写,其他字母变小写。
            else:
                return word
        return replace
    
    print (re.sub('python',matchcase('snake'),text,flags=re.IGNORECASE))
    >>> ================================ RESTART ================================
    >>> 
    UPPER SNAKE,lower snake,Mixed Snake
    >>> 
  • 相关阅读:
    Linux中$含义
    Linux文本处理之grep
    MySQL8.0.15的安装与配置---win10
    Jenkins实现自动运行jmeter脚本
    Hystrix初识
    Feign初始
    AS的Gradle下载不成功
    Linux安装一些软件
    OAuth2初识
    IDEA无法打开等奇异问题终极解决方法
  • 原文地址:https://www.cnblogs.com/apple2016/p/5790812.html
Copyright © 2011-2022 走看看