【问题标题】:How do you replace a specific character in a string in R with an existing character?如何用现有字符替换 R 中字符串中的特定字符?
【发布时间】:2021-10-10 00:15:00
【问题描述】:

我有一个带有变量 df$sec 的 tibble,它是两个字符串的向量。

sec <- c("21", "33", "24", "7-", "32", "1-")  

字符集 7- 和 1- 应该是 07 和 01。

使用 {stringr}

df %>% 
  mutate(section = str_replace(string=sec, pattern = ".-$", "0?")) %>% 
  select(section)  

返回:21,33,24,0?, 32, 0?
如何将字符 7- 和 1- 返回为 07 和 01?

【问题讨论】:

  • 试试str_replace(string=sec, pattern = "^(\\d)-$", "0\\1")
  • 谢谢维克托!这有效
  • 我正在尝试理解分组。我刚刚订购了几本关于正则表达式的书。如果您有建议,请发表。再次感谢您。
  • 我只能建议在regexone.com 完成所有课程,通读regular-expressions.inforegex SO tag description(还有许多其他指向优秀在线资源的链接)以及名为What does the regex mean 的社区SO 帖子。另外,rexegg.com 值得一看。对于 R,另请参阅 my answer

标签: r regex str-replace stringr


【解决方案1】:

你可以使用

str_replace(string=sec, pattern = "^(\\d)-$", "0\\1")

正则表达式匹配

  • ^ - 字符串开头
  • (\d) - 捕获组#1(替换模式中的\1 指的是在该组中捕获的字符串):一个数字
  • - - 一个连字符
  • $ - 字符串结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多