搜索多个单词时,正则表达式是否始终匹配可能的最大单词?

时间:2017-05-27 01:46:45

标签: regex

如果我有以下字符串:

banana

我想使用正则表达式搜索多个字符串:

(a|ana|nana|banana)

正则表达式是否始终与banana匹配,因为这是最长的字符串?

1 个答案:

答案 0 :(得分:3)

这是一个可能在正则表达式实现之间变化的细节。一般来说,我希望banana匹配,不是因为它是最长的,而是因为它在字符串中具有最左边的起始位置 - 该匹配将在任何其他替代方案的起始位置之前被发现达到。

如果正则表达式类似于(bana|ba|banana),则结果不太确定。它可以合理地是bana(匹配的第一个替代),ba(达到完全匹配的第一个替代)或banana(最长匹配)中的任何一个。希望您的正则表达式实现的文档提供它使用的确切规则。