我不知道longest_match选项在谷歌的re2库中是做什么的。
不正确的解释
在将最长匹配应用于"".
"aaaaa"而不是空字符串"aaaaa"(将/a*/应用到"abaa" ),设置最长匹配使regex匹配最长匹配"aa" (从索引2开始),而不匹配最左侧匹配"a" (从索引0开始)h 212f 213。我还没能在互联网上找到讨论这个问题的人,这表明我是唯一一个感到困惑的人。有人能帮我吗?
发布于 2011-08-29 15:10:37
通常,POSIX正则表达式返回匹配。也就是说(假设您只搜索第一个匹配,这是大多数regex实现的默认行为),regex /a*/将在应用于"abaa"时返回"a",因为最左边的a (位置0)匹配。regex在看到第2位后面的aa之前宣布成功。
其他regex库(例如PCRE)返回第一个可能的匹配,例如
a(b|bb)将在字符串"ab"中匹配"abb",因为第一个选项已经匹配。
现在我不知道re2库,但是我假设longest_match选项将从一个字符串收集所有可能的匹配,然后返回其中最长的一个。
https://stackoverflow.com/questions/7231534
复制相似问题