R - 仅将多次出现的字符替换为一次。正则表达式
R - Replace Multiple Ocurrences of character by only one . REGEX
我有以下字符串
str<-"Actividades Financieras && Bancarias #### 23"
我想删除多个空格、多个 && 和多个 #。我想得到:
Actividades Financieras & Bancarias # 23
到目前为止我已经试过了
gsub("[^A-z0-9]+"," ",string)
我得到
"Actividades Financieras Bancarias 23"
并且它会删除所有 # 和 &。
有没有办法保留一个字符。
谢谢。
您可以使用
string <- "Actividades Financieras && Bancarias #### 23"
gsub("([#&\s])\1+", "\1", string, perl=TRUE)
# => [1] "Actividades Financieras & Bancarias # 23"
参见regex demo and an online R demo。
详情
([#&\s])
- 捕获组 1 匹配 #
、&
或空格
\1+
- 与它匹配 1 次或多次的第 1 组值的反向引用(由于 +
量词)。
匹配被替换为捕获字符的单个匹配项(
占位符引用替换模式中的第 1 组值)。
我有以下字符串
str<-"Actividades Financieras && Bancarias #### 23"
我想删除多个空格、多个 && 和多个 #。我想得到:
Actividades Financieras & Bancarias # 23
到目前为止我已经试过了
gsub("[^A-z0-9]+"," ",string)
我得到
"Actividades Financieras Bancarias 23"
并且它会删除所有 # 和 &。
有没有办法保留一个字符。
谢谢。
您可以使用
string <- "Actividades Financieras && Bancarias #### 23"
gsub("([#&\s])\1+", "\1", string, perl=TRUE)
# => [1] "Actividades Financieras & Bancarias # 23"
参见regex demo and an online R demo。
详情
([#&\s])
- 捕获组 1 匹配#
、&
或空格\1+
- 与它匹配 1 次或多次的第 1 组值的反向引用(由于+
量词)。
匹配被替换为捕获字符的单个匹配项( 占位符引用替换模式中的第 1 组值)。