python - python匹配大小写字母而不使用小写或大写
问题描述
如何使字符串不区分大小写,以便在针对大写或小写字母进行测试时每次都返回 true。
例如有没有办法实现以下目标:
>>> someregex('y') == 'Y'
True
>>> someregex('y') == 'y'
True
someregex 会是什么样子?请注意,在我的程序中,仅允许对表达式的左侧部分进行更改,并且我不能简单地在右侧使用 .lower() 。
谢谢
解决方案
这听起来像您想要比较时不区分大小写的字符串的某个子类。
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
推荐阅读
- python - 为什么 Menubutton 在此代码中不起作用?
- python - 为什么在熊猫中使用“==”返回一个系列而不是布尔?
- r - 将函数多次应用于新数组
- javascript - 将画面仪表板嵌入代码保存为 JavaScript 变量?
- c++ - 如何为每个线程 OpenMP 收集数据
- sql - 用于获取结果的 Sql Server 查询
- openrefine - 使用 OpenRefine 将行转置为列(行数可变)
- php - 自定义帖子类型仅返回第一个帖子
- java - 如何使用带有列表的 lambda 引发异常?
- python - 使用循环从 Pandas 列构建 Python 字典