【问题标题】:Remove a phrase from a vector of strings从字符串向量中删除短语
【发布时间】:2016-05-07 18:34:43
【问题描述】:

我在一个向量中有一堆字符串,我正在尝试删除几个字符串的" (dblheader)" 部分。这是我的字符串向量:

startinglineups$Teams       
[1] "Colorado Rockies"              "San Francisco Giants"          "Kansas City Royals"            "Cleveland Indians"            
[5] "Oakland A's (dblheader)"       "Baltimore Orioles (dblheader)" "Arizona Diamondbacks"          "Atlanta Braves"               

我尝试过使用sub(" (dblheader)", "", startinglineups$Teams)gsub,但它们似乎都没有成功。我猜前面的空格字符或括号有问题。我认为搜索确切的短语可以解决我的问题,但我错了。我在想可能需要使用一些转义序列,或者我只是想多了。

【问题讨论】:

    标签: r string vector gsub


    【解决方案1】:

    您可以使用一个转义序列(稍后解释)。但是,由于您正在对字符串进行完全匹配,因此您只需将 fixed = TRUE 添加到您的 sub() 调用中即可。

    sub(" (dblheader)", "", startinglineups$Teams, fixed = TRUE)
    

    这也将比使用正则表达式更快,因为它绕过了正则表达式引擎。

    否则,正则表达式中的括号用于分组和捕获,因此需要转义才能按字面意思使用。所以对于正则表达式的使用,你可以做到

    sub(" \\(dblheader\\)", "", startinglineups$Teams)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多