gpt4 book ai didi

python - 如何在正则表达式中使用 OR

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

我有一些字符串,如“abc”、“def”、“xyz”,它们后面可能跟有数字。例如:abc123 或 xyz92

如果我使用:

re.findall("abc|def|xyz[0-9]+",text)

然后它将只返回 xyz 后跟数字,其余的我只得到字符串。

如何在不手动操作的情况下匹配所有这些:

re.findall("abc[0-9]+|def[0-9]+|xyz[0-9]+",text)

最佳答案

使用括号和 ?: 来创建一个非捕获组:

(?:abc|def|xyz)[0-9]+

Regular expression visualization

Debuggex Demo

此外,如果您的字符串后面可能没有数字,您应该使用 *(0 或更多),而不是 +(1 或更多).这样 abcabc123 都会匹配:

(?:abc|def|xyz)[0-9]*

Regular expression visualization

Debuggex Demo

这是您当前的正则表达式:

abc|def|xyz[0-9]+

Regular expression visualization

Debuggex Demo

关于python - 如何在正则表达式中使用 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223038/

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