我知道您可以使用ctypes库对字符串执行不区分大小写的比较,但是我也想执行不区分大小写的替换。目前,我知道这样做的唯一方法是使用正则表达式,并且通过它可能看起来有点差。
是否有不区分大小写的replace()?
答案 0 :(得分:10)
您可以按照docs中的说明为re模块中的函数提供标志re.IGNORECASE。
matcher = re.compile(myExpression, re.IGNORECASE)
答案 1 :(得分:5)
使用re
是最佳解决方案,即使您认为它很复杂。
要用'abc'
替换所有出现的'ABC'
,'Abc'
,'Python'
等,请说:
re.sub(r'(?i)abc', 'Python', a)
示例会话:
>>> a = 'abc asd Abc asd ABCDE XXAbCXX'
>>> import re
>>> re.sub(r'(?i)abc', 'Python', a)
'Python asd Python asd PythonDE XXPythonXX'
>>>
请注意,在regexp的开头嵌入(?i)
会使其区分大小写。另请注意regexp的r'...'
字符串文字(在这种特定情况下是冗余的,但只要你的正则表达式中有反斜杠(\)
就会有所帮助。
答案 2 :(得分:1)