我知道您可以使用ctypes库对字符串执行不区分大小写的比较,但是我也想执行不区分大小写的替换.目前我知道这样做的唯一方法是使用正则表达式,并且通过它可能看起来有点差.
是否有一个不区分大小写的replace()版本?
zda*_*dan 10
您可以按照文档中的描述为re模块中的函数提供标志re.IGNORECASE .
matcher = re.compile(myExpression, re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)
小智 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 的字符串文字(在这种特定情况下是多余的,但只要你的正则表达式中有反斜杠就会有帮助(\).