On 11/04/2024 12:58 p.m., Iris Simmons wrote:
Hi Duncan,
I only know about sub() and gsub().
There is no way to have pattern be a regular expression and replacement
be a fixed string.
Backslash is the only special character in replacement. If you need a
reference, see this file:
https://github.com/wch/r-source/blob/04650eddd6d844963b6d7aac02bd8d13cbf440d4/src/main/grep.c
<https://github.com/wch/r-source/blob/04650eddd6d844963b6d7aac02bd8d13cbf440d4/src/main/grep.c>
particularly functions R_pcre_string_adj and wstring_adj. So just double
the backslashes in replacement and you'll be good to go.
Thanks, that's what I've done.
Duncan Murdoch
On Thu, Apr 11, 2024, 12:36 Duncan Murdoch <murdoch.dun...@gmail.com
<mailto:murdoch.dun...@gmail.com>> wrote:
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?
2. To get what I want, I can double the backslashes in the replacement
text. This would do that:
replacement <- gsub("\\\\", "\\\\\\\\", replacement)
Are there any other special characters to worry about besides
backslashes?
Duncan Murdoch
______________________________________________
R-help@r-project.org <mailto:R-help@r-project.org> mailing list --
To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
<https://stat.ethz.ch/mailman/listinfo/r-help>
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
<http://www.R-project.org/posting-guide.html>
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.