替换 R 中的字母数字字符串

问题描述 投票:0回答:1

我有一个包含字母数字字符串的数据集。我试图用“nnnn”替换字符串的数字部分,用“aaaa”替换字母部分。字母和数字部分的长度无关紧要。

例子: 我期待的
#100001032218888示例1 #nnnnaaaannn
#1-示例-2 #nnnn-aaaa-nnnn

我试过这个:

  mutate(str_alpha = str_replace_all(col_name, "\\w+", "aaaa"),
         str_num_alpha = str_replace_all(str_alpha, "\\d+", "nnnn"))

我想我得到的“\w+”不正确,因为它也替换了字符串的数字部分。

有人可以帮忙吗?谢谢。

r string replace stringr
1个回答
1
投票

相反,即先替换字母,然后替换数字

library(stringr)
str_replace_all(str_replace_all(str1, "[[:alpha:]]+", "aaaa"), "\\d+", "nnnn")

-输出

[1] "#nnnnaaaannnn"   "#nnnn-aaaa-nnnn"

或者在单个

str_replace_all

中使用命名向量
str_replace_all(str1, setNames(c("aaaa", "nnnn"), c("[[:alpha:]]+", "\\d+")))
[1] "#nnnnaaaannnn"   "#nnnn-aaaa-nnnn"

数据

str1 <- c("#100001032218888example1", "#1-example-2")
© www.soinside.com 2019 - 2024. All rights reserved.