【问题标题】:How to use wildcard in gsub replacement如何在 gsub 替换中使用通配符
【发布时间】:2023-03-21 22:05:02
【问题描述】:

我有一列字符串,例如

strings <- c("SometextPO0001moretext", "SometextPO0008moretext")

“sometext”和“moretext”部分的长度是可变的。我想删除字符串的 PO000* 部分,其中 * 是通配符。我试过了

gsub("PO000*", "", strings)

Google 搜索了很多,但令人惊讶的是没有找到这个看似简单问题的答案。由于最后一个字符不同,我希望能够以这种方式进行删除,而不是对大量变体进行硬编码。任何帮助,将不胜感激!

【问题讨论】:

    标签: r string gsub


    【解决方案1】:

    对于单个通配符,您需要使用.。您使用的* 对最后一个字符重复 0 次或多次,即0

    gsub("PO000.", "", strings) 将同时删除 PO0001PO0008

    【讨论】:

      【解决方案2】:

      我觉得应该是gsub("PO000\\d{1}", "", strings) 结果是:

      [1] "Sometextmoretext" "Sometextmoretext"
      

      【讨论】:

      • 谢谢,这个答案也有效。获得第一个是因为它更简单
      • @kng229 很好,他的回答更详细,我只是发表我的想法。
      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多