[R] Regex: workaround for variable length negative lookbehind

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Mon Dec 1 12:31:37 CET 2008


Gabor Grothendieck wrote:
> On Mon, Dec 1, 2008 at 12:20 AM, Wacek Kusnierczyk
> <Waclaw.Marcin.Kusnierczyk at idi.ntnu.no> wrote:
>   
>> Gabor Grothendieck wrote:
>>     
>>> Try this:
>>>
>>>
>>>       
>>>> vec <- c("aaaa", "baaa", "bbaa", "bbba", "baamm", "aa")
>>>>
>>>>         
>>>       
>>>> grep("^(?!(.)\\1{1,}$).*(.)\\2{1,}$", vec, perl = TRUE)
>>>>
>>>>         
>> or even
>>
>> grep("^(?!(.)\\1+$).*(.)\\2+$", vec, perl = TRUE)
>>
>>     
>
> Or combining the previous simplification I posted with yours:
>
>   
>> grep("^(?!(.)\\1+$).*(.)\\2$", vec, perl = TRUE)
>>     

ha!  you can even make it a tiny little bit faster:

grep("^(?!(.)\\1+$).+(.)\\2$", vec, perl = TRUE)

;)

vQ



More information about the R-help mailing list