python - 如何在 python 中向正则表达式添加修饰符?

标签 python regex

我想添加这两个修饰符:g - global , i - insensitive

这是我的脚本的一部分:

search_pattern =  r"/somestring/gi"
pattern = re.compile(search_pattern)

queries = pattern.findall(content)

但是没用 修饰符按照本页 https://regex101.com/

最佳答案

首先,我建议您通过检查其所有资源和部分来研究 regex101.com 的功能。单击左侧的代码生成器链接时,您始终可以看到 Python(以及 PHP 和 JS)代码。

如何获取g全局搜索行为?

如果您没有捕获组,Python 中的 findall 将为您匹配文本。因此,对于 r"somestring"findall 就足够了。 如果您有捕获组,但需要整个匹配,您可以使用 finditer 并访问 .group(0)

如何获得不区分大小写的行为?

i 修饰符可以在 pattern = re.compile(search_pattern , re.I).此外,您可以使用内联标志:pattern = re.compile("(?i)somestring")

关于正则表达式定界符

您应该使用 search_pattern = r"somestring" 而不是 search_pattern = r"/somestring/gi"。这是因为标志作为单独的参数传递,并且所有操作都作为单独的 re 方法实现。

所以,你可以使用

import re
p = re.compile(r'somestring', re.IGNORECASE)
test_str = "somestring"
re.findall(p, test_str)

或者

import re
p = re.compile(r'(?i)(some)string')
test_str = "somestring"
print([(x.group(0),x.group(1)) for x in p.finditer(test_str)])

参见 IDEONE demo

关于python - 如何在 python 中向正则表达式添加修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916471/

相关文章:

regex - 匹配 perl 正则表达式中括号和方括号之外的所有逗号

regex - perl6如何在正则表达式内插中使用结点?

Javascript正则表达式出现意想不到的结果

php - 301 重定向正在附加 ?_url

regex - PCRE 正则表达式匹配/x...但不匹配/y/x

python 嵌套列表到字典

python - 背景按钮颜色在按下时不会改变

python - azureml 可以将变量从一个步骤传递到另一步骤吗?

python - TFLite 的硬刷操作

python - ModuleNotFoundError : What does it mean __main__ is not a package?