Python字符串中的大小写不敏感

Tei*_*ion 4 python

我知道您可以使用ctypes库对字符串执行不区分大小写的比较,但是我也想执行不区分大小写的替换.目前我知道这样做的唯一方法是使用正则表达式,并且通过它可能看起来有点差.

是否有一个不区分大小写的replace()版本?

zda*_*dan 10

您可以按照文档中的描述为re模块中的函数提供标志re.IGNORECASE .

matcher = re.compile(myExpression, re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

  • 您将使用compile返回的对象作为re.sub中的模式. (2认同)

小智 5

使用re是最好的解决方案,即使您认为它很复杂.

要替换所有出现的'abc','ABC','Abc'等,用'Python',说:

re.sub(r'(?i)abc', 'Python', a)
Run Code Online (Sandbox Code Playgroud)

示例会话:

>>> a = 'abc  asd   Abc  asd  ABCDE    XXAbCXX'
>>> import re
>>> re.sub(r'(?i)abc', 'Python', a)
'Python  asd   Python  asd  PythonDE    XXPythonXX'
>>> 
Run Code Online (Sandbox Code Playgroud)

请注意(?i)在regexp开始时嵌入如何使其区分大小写.还要注意r'...'regexp 的字符串文字(在这种特定情况下是多余的,但只要你的正则表达式中有反斜杠就会有帮助(\).