如何在 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.11
和 Z98.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
在 MacOS 上使用 Python 3.9(如果重要的话)我有以下布尔测试,它使用正则表达式在 string
中搜索 pattern
:
found = bool(re.search(pattern, string, re.IGNORECASE))
这个布尔值不是文字搜索。例如,字符串 Z97.11
和 Z98.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