使用 r 中的 sub 分别将第一个和第二个“-”替换为“_”和“:”
replace first and second "-" with "_" and ":" respectively using sub in r
我有一个像这样的字符串:
string <- "a-b-c-d"
我想将第一个“-”替换为“_”,将第二个替换为“:”
我正在使用以下命令,但是它将所有“-”替换为“:”
gsub("\-", "_", gsub("\-", ":", string))
期望的输出是:“a_b:c-d”
有什么想法如此受欢迎吗?
抓拍并进行替换
sub("^([^-]+)-([^-]+)-", "\1_\2:", string)
[1] "a_b:c-d"
您几乎走在了正确的轨道上。会帮助你一点。 gsub
是贪心的,因此将替换模式的每个实例。所以你应该改用 sub
。
你应该这样做:
sub("-", ":", sub("-", "_", string))
[1] "a_b:c-d"
这里先把-
换成_
。因为我们使用的是 sub
,所以只替换了第一个实例。字符串变为 a_b-c-d
。现在我们只需要再次替换第一次出现的 -
,这次用 :
代替
我有一个像这样的字符串:
string <- "a-b-c-d"
我想将第一个“-”替换为“_”,将第二个替换为“:”
我正在使用以下命令,但是它将所有“-”替换为“:”
gsub("\-", "_", gsub("\-", ":", string))
期望的输出是:“a_b:c-d”
有什么想法如此受欢迎吗?
抓拍并进行替换
sub("^([^-]+)-([^-]+)-", "\1_\2:", string)
[1] "a_b:c-d"
您几乎走在了正确的轨道上。会帮助你一点。 gsub
是贪心的,因此将替换模式的每个实例。所以你应该改用 sub
。
你应该这样做:
sub("-", ":", sub("-", "_", string))
[1] "a_b:c-d"
这里先把-
换成_
。因为我们使用的是 sub
,所以只替换了第一个实例。字符串变为 a_b-c-d
。现在我们只需要再次替换第一次出现的 -
,这次用 :
代替