【问题标题】:Remove all substrings between angle brackets删除尖括号之间的所有子字符串
【发布时间】:2021-09-19 15:08:50
【问题描述】:

在下面的字符串中

test_string = "This is a te<8239154>st str<ass31>ing."

我想用空字符串替换所有出现的&lt;xxx&gt; 形式。

我知道我可以使用gsub("&lt;8239154&gt;", "", "test_string "),但这不能动态应用于比较符号之间的任何字符串。我怎样才能做到这一点?

【问题讨论】:

    标签: r regex gsub


    【解决方案1】:

    你可以使用

    gsub("<[^>]*>", "", test_string)
    gsub("<[^<>]*>", "", test_string)
    

    &lt;[^&gt;]*&gt; 正则表达式匹配&lt;,然后匹配除&gt; 之外的任何零个或多个字符,然后匹配&gt; 字符。 &lt;[^&lt;&gt;]*&gt; 模式类似,只是它不允许 &lt;&lt;&gt; 之间(这可以方便地删除 innermost 出现的 &lt;&gt;) .

    this regex demo

    请注意,如果您只需要删除包含 &lt;&gt; 符号的单词字符,您可以使用更具体的解决方案,即

    gsub("<\\w+>", "", test_string)
    

    \w+ 匹配一个或多个字母、数字或下划线。见this regex demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 2021-12-02
      • 2016-09-28
      相关资源
      最近更新 更多