如何在 Python 中进行忽略大小写的文字 RegEx 搜索

How to do a literal RegEx search ignoring case in Python

在 MacOS 上使用 Python 3.9(如果重要的话)我有以下布尔测试,它使用正则表达式在 string 中搜索 pattern

found = bool(re.search(pattern, string, re.IGNORECASE))

这个布尔值不是文字搜索。例如,字符串 Z97.11Z98.811.1 的模式返回。这对于正则表达式是正确的 - 但我希望布尔值仅在 Z97.11 时为真,而不是 Z98.811 用于使用 re.search.

的文字搜索

文字搜索也必须不区分大小写。

如果您的正则表达式包含 . 而前面没有反斜杠,那么您将匹配任何字符。因此,针对 81 搜索 .1 将会成功。

将正则表达式中的 .1 更改为 .,只有 Z97.11 应该通过。

非常有用的资源: https://regex101.com/

如果您正在寻找文字子字符串 .1 的存在,您的正则表达式将是 \.1. 在正则表达式中有特殊含义(表示除换行符外的任何字符)。使用反斜杠 (\) 将转义 . 字符在正则表达式中的特殊含义。

found = re.search(r"\.1", string, re.IGNORECASE) is not None

我通常更喜欢在 regexr.com 测试我的正则表达式模式,以帮助快速编写这些表达式。我希望这个网站也能帮到你!

Example of using RegExr.com