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.pa...@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel