如何使字符串不区分大小写,以便在对大写字母或小写字母进行测试时,每次都返回true。
例如,有一种方法可以实现以下目标:
>>> someregex('y') == 'Y'
True
>>> someregex('y') == 'y'
True
someregex会是什么样子?请注意,在我的程序中,只允许对表达式的左侧部分进行更改,并且不能简单地在右侧使用.lower()。
谢谢
答案 0 :(得分:2)
这听起来像您想要比较时不区分大小写的字符串子类。
class CaseInsensitiveString(str):
def __eq__(self, other):
"""
This overloads the == operator to make it perform a case-insensitive comparison
"""
return self.lower() == other.lower()
使用该子类:
>>> CaseInsensitiveString('y') == 'Y'
True
>>> CaseInsensitiveString('y') == 'y'
True
答案 1 :(得分:0)
您可以通过以下方法进行检查:
>>> import re
>>> re.match('^[yY]$', 'y')
<re.Match object; span=(0, 1), match='y'>
>>> re.match('^[yY]$', 'Y')
<re.Match object; span=(0, 1), match='Y'>
>>> re.match('^[yY]$', 'X')# something that doesn't match gives None