2024-09-26 22:45:22 发布
网友
我有一个自动生成的正则表达式,基本上是一个大的“或”组,如下所示:
(\bthe\b|\bcat\b|\bin\b|\bhat\.\b|\bhat\b)
我注意到
它只配“帽子”,而不是我想要的“帽子”。有没有办法让它更贪婪?在
更新:忘记了单词边界,抱歉。在
在正则表达式中,将hat\.放在hat之前。交替中的第一个匹配表达式获胜。hat匹配hat.所以hat\.从不检查。在
hat\.
hat
hat.
更好的方法是将该部分写成hat\.?,而不是{}。这使得句点是可选的,所以在交替中不需要两个词。在
hat\.?
编辑后:
.和空格之间没有单词边界(两者都是非单词字符)。所以\bhat\.\b只在{}这样的情况下匹配,其中句点后面紧跟着另一个字母。这意味着在例如一个句子中,hat将是匹配的那个。不过,我找到了解决办法。在
.
\bhat\.\b
在正则表达式中,将
hat\.
放在hat
之前。交替中的第一个匹配表达式获胜。hat
匹配hat.
所以hat\.
从不检查。在更好的方法是将该部分写成}。这使得句点是可选的,所以在交替中不需要两个词。在
hat\.?
,而不是{编辑后:
.
和空格之间没有单词边界(两者都是非单词字符)。所以\bhat\.\b
只在{hat
将是匹配的那个。不过,我找到了解决办法。在相关问题 更多 >
编程相关推荐