首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于Google re2库来说,longest_match是什么意思?

对于Google re2库来说,longest_match是什么意思?
EN

Stack Overflow用户
提问于 2011-08-29 14:32:41
回答 1查看 656关注 0票数 0

我不知道longest_match选项在谷歌的re2库中是做什么的。

不正确的解释

在将最长匹配应用于"".

  • when时,设置最长匹配会使Kleene闭包变得贪婪,从而使regex匹配整个字符串"aaaaa"而不是空字符串"aaaaa"(将/a*/应用到"abaa" ),设置最长匹配使regex匹配最长匹配"aa" (从索引2开始),而不匹配最左侧匹配"a" (从索引0开始)h 212f 213

我还没能在互联网上找到讨论这个问题的人,这表明我是唯一一个感到困惑的人。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-29 15:10:37

通常,POSIX正则表达式返回匹配。也就是说(假设您只搜索第一个匹配,这是大多数regex实现的默认行为),regex /a*/将在应用于"abaa"时返回"a",因为最左边的a (位置0)匹配。regex在看到第2位后面的aa之前宣布成功。

其他regex库(例如PCRE)返回第一个可能的匹配,例如

代码语言:javascript
复制
a(b|bb)

将在字符串"ab"中匹配"abb",因为第一个选项已经匹配。

现在我不知道re2库,但是我假设longest_match选项将从一个字符串收集所有可能的匹配,然后返回其中最长的一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7231534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档