[R] Regexp pattern but fixed replacement?
    Enrico Schumann 
    e@ @end|ng |rom enr|co@chum@nn@net
       
    Thu May 23 11:24:52 CEST 2024
    
    
  
On Thu, 11 Apr 2024, Duncan Murdoch writes:
> I noticed this issue in stringr::str_replace, but it
> also affects sub() in base R.
>
> If the pattern in a call to one of these needs to be a
> regular expression, then backslashes in the replacement
> text are treated specially.
>
> For example,
>
>   gsub("a|b", "\\", "abcdef")
>
> gives "def", not "\\\\def" as I wanted.  To get the
> latter, I need to escape the replacement backslashes,
> e.g.
>
>   gsub("a|b", "\\\\", "abcdef")
>
> which gives "\\\\cdef".
>
> I have two questions:
>
> 1.  Is there a variant on sub or str_replace which
> allows the pattern to be declared as a regular
> expression, but the replacement to be declared as
> fixed?
I realize that this reply is late, but you can use raw
strings for the replacement:
   gsub("a|b", r"(\\)", "abcdef")
   ## [1] "\\\\cdef"
which might be easier to read, sometimes.
[...]
-- 
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net
    
    
More information about the R-help
mailing list