gpt4 book ai didi

Python 正则表达式 : using or statement

转载 作者:行者123 更新时间:2023-12-01 04:57:12 25 4
gpt4 key购买 nike

我可能没有这么说(我是一个正则表达式新手)。这是我目前拥有的代码:

bugs.append(re.compile("^(\d+)").match(line).group(1))

我想添加到正则表达式中,以便它查看“\d+”(以数字开头)或以 2 个大写字母开头并在第一个空格之前包含“-”。我有大写字母的正则表达式:

^[A-Z]{2,}

但我不知道如何添加“-”并与\d+ 进行“或”运算。这有道理吗?谢谢!

最佳答案

在正则表达式中执行 OR 的方法是使用“交替”或“管道”运算符 |

例如,要匹配一个或多个数字,或者两个或多个大写字母:

^(\d+|[A-Z]{2,})

Regular expression visualization

Debuggex Demo

有时您可能需要也可能不需要添加/删除/移动括号以获得正确的优先级。按照我编写的方式,您有一组捕获数字字符串或大写字母。当您学习规则时(事实上,即使您已经学习了规则),查看像我使用的那样的正则表达式可视化工具/调试器会很有帮助。

<小时/>

您的规则稍微复杂一些:您需要 2 个或更多大写字母,并在第一个空格之前有一个连字符。按原样编写有点困难,但如果将其更改为两个或多个大写字母、零个或多个非空格字符以及连字符,那就很容易了:

^(\d+|[A-Z]{2,}\S*?-)

Regular expression visualization

Debuggex Demo

(注意 \S*? - 这意味着我们将匹配尽可能少的字符,而不是尽可能多的字符,因此我们只会匹配 THIS-IS-A-TEST 中的第一个 连字符,而不是最后一个连字符。如果您想要另一个,只需删除 ?。)

关于Python 正则表达式 : using or statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116921/

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