Skip to content
Back to formatted view

Raw Message

Message-ID: <4933CB19.5060409@idi.ntnu.no>
Date: 2008-12-01T11:31:37Z
From: Wacek Kusnierczyk
Subject: Regex: workaround for variable length negative lookbehind
In-Reply-To: <971536df0812010318q7ec499c7l90f7eed91e6bf077@mail.gmail.com>

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