字符串忽略大小写的搜索和替换

Posted action-go

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串忽略大小写的搜索和替换相关的知识,希望对你有一定的参考价值。

需求:字符串忽略大小写搜索和替换

解决:
  • 使用re.IGNORECASE
import re

text = 'UPPER PYTHON, lower python, Mixed Python'


f = re.findall("python", text, flags=re.IGNORECASE)
print(f)
s, n = re.subn("python","snake",text, flags=re.IGNORECASE)
print(s)
print(n) # 返回匹配的次数
缺陷
替换之后的字符串与被替换的大小写不能保持一致
解决:
def matchcase(word):
    def replace(m): # 匹配的结果 如:PYTHON
        text = m.group()
        if text.isupper():
            return word.upper()
        elif text.islower():
            return word.lower()
        elif text[0].isupper():
            return word.capitalize()
        else:
            return word

    return replace


if __name__ == '__main__':
    s = re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
    print(s)

以上是关于字符串忽略大小写的搜索和替换的主要内容,如果未能解决你的问题,请参考以下文章

Java字符串替换忽略大小写

Linux字符串搜索命令

SQL-搜索字符串时忽略大小写

Swift忽略大小写搜索子字符串的三种方法及性能对比

Swift忽略大小写搜索子字符串的三种方法及性能对比

如何在 Notepad++ 中搜索、替换和保留大小写?