0

我有以下形式的字符串:

greengrocerabc
sandwichcba
oscardcba

我想懒惰地匹配abc,abcdabcde,所以我可以得到第一个组件。所以像

sub("^(.+)(abc|cba|dcba)", "\\1", "oscardcba") => "oscar"

但是,正则表达式OR贪婪匹配cba,我得到oscard

我怎么能懒惰匹配这个OR?语言是 R,但它可以像 grep 或 perl 一样工作。

4

1 回答 1

4

然后使量词非贪婪:

^(.+?)(abc|cba|dcba)

这样,捕获组将仅包含可能的最短匹配项(不包括abc,cbadcba)。

进一步阅读:

于 2011-08-16T17:28:35.570 回答