正则表达式中是否存在贪婪或组?

2024-09-26 22:45:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个自动生成的正则表达式,基本上是一个大的“或”组,如下所示:

(\bthe\b|\bcat\b|\bin\b|\bhat\.\b|\bhat\b)

我注意到

^{pr2}$

它只配“帽子”,而不是我想要的“帽子”。有没有办法让它更贪婪?在

更新:忘记了单词边界,抱歉。在


Tags: bin单词帽子边界办法pr2bhatbcat
1条回答
网友
1楼 · 发布于 2024-09-26 22:45:22

在正则表达式中,将hat\.放在hat之前。交替中的第一个匹配表达式获胜。hat匹配hat.所以hat\.从不检查。在

更好的方法是将该部分写成hat\.?,而不是{}。这使得句点是可选的,所以在交替中不需要两个词。在

编辑后:

.和空格之间没有单词边界(两者都是非单词字符)。所以\bhat\.\b只在{}这样的情况下匹配,其中句点后面紧跟着另一个字母。这意味着在例如一个句子中,hat将是匹配的那个。不过,我找到了解决办法。在

相关问题 更多 >

    热门问题