正则表达式中贪婪的"或"群体存在吗?

And*_*rew 6 python regex

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

(\bthe\b|\bcat\b|\bin\b|\bhat\.\b|\bhat\b)
Run Code Online (Sandbox Code Playgroud)

我已经注意到了

hat.
Run Code Online (Sandbox Code Playgroud)

它只会匹配"帽子",而不是"帽子".我想要的.有没有办法让它更贪婪?

更新:忘记了单词边界,对不起.

kin*_*all 9

放在正则表达式hat\.之前hat.交替中的第一个匹配表达式获胜.hat比赛hat.因此hat\.永远不会检查.

更好的方法是将该部分写成hat\.?而不是hat\.|hat.这使得期间可选,因此您在交替中不需要两个术语.

编辑后:

.和之间没有单词边界,比如空格(都是非单词字符).所以\bhat\.\b只会匹配hat.x其他字母紧跟时期之后的事情.这意味着在例如句子中,hat将是匹配的那个.但是,我看到你找到了解决方案.