Cam*_*teT 1 regex string replace r special-characters
我有以下字符串
str<-"Actividades Financieras && Bancarias #### 23"
Run Code Online (Sandbox Code Playgroud)
我想删除多个间距、多个&&和多个#。我想得到:
Actividades Financieras & Bancarias # 23
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试过
gsub("[^A-z0-9]+"," ",string)
Run Code Online (Sandbox Code Playgroud)
我明白了
"Actividades Financieras Bancarias 23"
Run Code Online (Sandbox Code Playgroud)
它会删除所有 # 和 &。
有没有办法保留一个字符。
谢谢。
您可以使用
string <- "Actividades Financieras && Bancarias #### 23"
gsub("([#&\\s])\\1+", "\\1", string, perl=TRUE)
# => [1] "Actividades Financieras & Bancarias # 23"
Run Code Online (Sandbox Code Playgroud)
细节
([#&\\s])-捕获组1匹配一个#,&或空白\\1+- 对第 1 组值匹配 1 次或多次的反向引用(由于+量词)。匹配被替换为单个出现的捕获字符(\1占位符引用来自替换模式的组 1 值)。