如果我有以下字符串:
banana
我想使用正则表达式搜索多个字符串:
(a|ana|nana|banana)
正则表达式是否始终与banana
匹配,因为这是最长的字符串?
答案 0 :(得分:3)
这是一个可能在正则表达式实现之间变化的细节。一般来说,我希望banana
匹配,不是因为它是最长的,而是因为它在字符串中具有最左边的起始位置 - 该匹配将在任何其他替代方案的起始位置之前被发现达到。
如果正则表达式类似于(bana|ba|banana)
,则结果不太确定。它可以合理地是bana
(匹配的第一个替代),ba
(达到完全匹配的第一个替代)或banana
(最长匹配)中的任何一个。希望您的正则表达式实现的文档提供它使用的确切规则。