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