有条件地分隔 R 或替代正则表达式中的字符串

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

我有一个 7 维的字符串,我想将其分成 7 个不同的字符串。该字符串以逗号分隔,即每个维度之间有一个逗号。通常,要将维度分离为不同的字符串,我只需使用分离函数并指定 sep = ", "。然而,我的维度之一是一个字符串,在某些情况下包含逗号,这使得上述方法过时。有没有一种方法可以有条件地分隔字符串或不同的正则表达式模式,我可以使用它来分隔维度,同时保持每个维度的正确值?

这是我正在处理的问题的示例。下面是我正在使用的字符串类型的示例。我有维度名称,后跟冒号,然后是该维度的值。请注意,我不需要帮助将维度名称与值分开,我已经有一个解决方案:

my_str <- "dim1: 1, dim2: a, b, dim3: 3"

如您所见,

dim2
的值为
a, b
,因此如果我将
separate()
函数与
sep = ", "
一起使用,我最终会得到以下三个字符串:

"dim1: 1"
"dim2: a"
"b "

当我想要的是

"dim1: 1"
"dim2: a, b"
"dim3: 3"
r regex string dplyr split
1个回答
1
投票
unlist(strsplit(my_str, ",\\s*(?=\\w+:)", perl = TRUE))
[1] "dim1: 1"    "dim2: a, b" "dim3: 3"   
© www.soinside.com 2019 - 2024. All rights reserved.