[R-pkg-devel] perl = TRUE fails on ubuntu

Jiří Moravec j|r|@c@mor@vec @end|ng |rom gm@||@com
Wed May 28 01:38:23 CEST 2025


I believe the mysterious underused `regexec` is for this:

s = c("foo/bar", "baz/bur", "baz", "bar")
m = regexec("(foo|baz)/(b[au]r)", s)
regmatches(s, m) |> sapply("[", 3)

The `?regex` have some examples for parsing URL using regexec.

-- Jirka

On 28/05/25 10:24, Kevin Ushey wrote:
> Hi Josiah,
>
> Why not share a reprex / something we can copy and paste to directly
> reproduce the issue?
>
> In any case, I suspect this depends on the underlying PCRE
> implementation, and so isn't really directly an R issue. You might
> have luck if you rewrite your regular expression from:
>
>      (?<=(FeatureServer|MapServer)/)[0-9]+/?$
>
> to something like (I didn't count parentheses below so assume I made a mistake)
>
>      (?:(?<=FeatureServer)|(?<=MapServer)))/)[0-9]+/?$
>
> Or, alternatively -- does this really need to be a lookbehind? Can you
> just match that text as-is and then capture whatever you happen to
> find in front of it?
>
> Best,
> Kevin
>
> On Tue, May 27, 2025 at 3:07 PM Josiah Parry <josiah.parry using gmail.com> wrote:
>> Hi all,
>>
>> I've encountered an issue where using `perl = TRUE` for regular expressions
>> with grepl() causes an error on ubuntu CI runners only.
>>
>> Is this a known limitation of perl = TRUE for grep and family in base R? Or
>> is there a suggested workaround?
>>
>> The issue is specifically with lookbehinds:
>>
>> PCRE pattern compilation error
>> 'lookbehind assertion is not fixed length'
>> at '(?<=(FeatureServer|MapServer)/)[0-9]+/?$'
>>
>> Any guidance would be very much appreciated! I'd like to avoid adding a
>> stringi dependency if possible.
>>
>>          [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-package-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list