函数Hmisc::escapeRegex
转义字符串中的任何特殊字符。
library(Hmisc)
string <- "this\\(system) {is} [full]."
escapeRegex(string)
它基于gsub
和regexp
。
escapestring <- gsub("([.|()\\^{}+$*?]|\\[|\\])", "\\\\\\1", string)
escapestring
[1] "this\\\\\\(system\\) \\{is\\} \\[full\\]\\."
如何从escapestring
中删除反斜杠,以便检索原始string
?
答案 0 :(得分:1)
正则表达式怎么样
\\\\([.|()\\^{}+$*?]|\\[|\\])
替换为捕获组\1
使用示例
escapestring <- "this\\\\\\(system\\) \\{is\\} \\[full\\]\\."
string <- gsub("\\\\([.|()\\^{}+$*?]|\\[|\\])", "\\1", escapestring)
string
[1] "this\\(system) {is} [full]."
答案 1 :(得分:1)
可能这也有帮助
gsub("\\\\[(](*SKIP)(*F)|\\\\", '', escapestring, perl=TRUE)
#[1] "this\\(system) {is} [full]."
答案 2 :(得分:1)
实际上,您只需要在每个\
之后保留角色即可取消。
string <- "this\\(system) {is} [full]."
library(Hmisc)
gsub("\\\\(.)", "\\1", escapeRegex(string))
#> [1] "this\\(system) {is} [full]."
或者rex可以使逃避和逃避更简单。
library(rex)
re_substitutes(escape(string), rex("\\", capture(any)), "\\1", global = TRUE)
#> [1] "this\\(system) {is} [full]."