gpt4 book ai didi

python - 在 Python 中将许多相似的正则表达式合并为一个

转载 作者:行者123 更新时间:2023-11-28 22:50:12 25 4
gpt4 key购买 nike

我不熟悉正则表达式。实际上,我才刚刚开始。我有三种不同的模式

pattern = re.compile(r'SETUP...\d+')
pattern = re.compile(r'PRO...\d+')
pattern = re.compile(r'INSTALL...\d+')

我的一些字符串是 SETUP1234, SETUP = 1234, SETUP 1234, SETUP-1234 等。其他的也一样。因此,我认为前缀和数字之间的 3 个字符是一种合理的使用方式。但我现在的问题是,我可以将它们三个组合在一个 Regex 中,而不是调用三个不同的 findall 吗?

最佳答案

你可以像这样使用|

pattern = re.compile(r'(SETUP|PRO|INSTALL)...\d+')

表示SETUPPROINSTALL中的任何一个。

还有,图案可以稍微改进一下,像这样

pattern = re.compile(r'(SETUP|PRO|INSTALL).{1,3}\d+')

这允许在单词和数字之间使用 1 到 3 个字符。

作为Tim suggested in the comments , 你可以使用 non-capturing group像这样

pattern = re.compile(r'(?:SETUP|PRO|INSTALL).{1,3}\d+')
print pattern.findall("SETUP 1234")
# ['SETUP 1234']
print pattern.findall("PRO 1234")
# ['PRO 1234']
print pattern.findall("INSTALL 1234")
# ['INSTALL 1234']

关于python - 在 Python 中将许多相似的正则表达式合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com