R 删除1)打开和关闭模式与2)如果没有关闭模式,则删除打开模式和结束之间的字符

R 删除1)打开和关闭模式与2)如果没有关闭模式,则删除打开模式和结束之间的字符,r,regex,R,Regex,使用两个gsub调用链找到问题的解决方案-出于好奇,我想知道是否有一个较短的正则表达式来实现我的目标。(使用来自的解决方案) 我想删除某个模式出现之间的所有字符,或者-如果没有“结束模式”,则删除“开始”模式和结束之间的所有字符 foostring[1]“第一次测试”“第二次测试不同的内容” #>[3]“第三次测试不一样”“第四次测试不一样” 您可以使用 gsub(“\\*{3}.*?(?:\\*{3}$)”,“”,foostring) 见 TRE正则表达式是指: \*{3}-三个星号 *?

使用两个
gsub
调用链找到问题的解决方案-出于好奇,我想知道是否有一个较短的正则表达式来实现我的目标。(使用来自的解决方案)

我想删除某个模式出现之间的所有字符,或者-如果没有“结束模式”,则删除“开始”模式和结束之间的所有字符

foostring[1]“第一次测试”“第二次测试不同的内容”
#>[3]“第三次测试不一样”“第四次测试不一样”
您可以使用

gsub(“\\*{3}.*?(?:\\*{3}$)”,“”,foostring)

TRE正则表达式是指:

  • \*{3}
    -三个星号
  • *?
    -任何零个或多个字符尽可能少
  • (?:\\*{3}}$)
    -非捕获组匹配
    • \*{3}
      -三个星号之一
    • |
      -或
    • $
      -字符串结束

也许
gsub(\*{3}.*?(?:\*{3}}$),“”,foostring)
?@WiktorStribiżew如果这是你写的,一定是对的:)我会查出来的。非常感谢你的建议