Perhaps

sub( "^.*(a.*?a).*$", "\\1", x )


On January 25, 2023 4:19:01 PM PST, Duncan Murdoch <murdoch.dun...@gmail.com> 
wrote:
>The docs for ?regexp say this:  "By default repetition is greedy, so the 
>maximal possible number of repeats is used. This can be changed to ‘minimal’ 
>by appending ? to the quantifier. (There are further quantifiers that allow 
>approximate matching: see the TRE documentation.)"
>
>I want the minimal match, but I don't seem to be getting it.  For example,
>
>x <- "abaca"
>grep("a.*?a", x, value = TRUE)
>#> [1] "abaca"
>
>Shouldn't I have gotten "aba", which is the first match to "a.*a"?  If not, 
>what would be the regexp that would give me the first match to "a.*a", without 
>greedy expansion of the .*?
>
>Duncan Murdoch
>
>______________________________________________
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

-- 
Sent from my phone. Please excuse my brevity.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to