替换字符串中第四次出现的字符

时间:2014-06-06 11:37:57

标签: r replace

我试图在字符串中替换第四次出现'_'。例如,

输入

AAA_BBB_CCC_DD_D_EEE

输出

AAA_BBB_CCC_DDD_EEE

有人可以建议一个解决方案吗?

2 个答案:

答案 0 :(得分:5)

你可以使用反向引用....

gsub( "(_[^_]+_[^_]+_[^_]+)_" , "\\1" , x )
# [1] "AAA_BBB_CCC_DDD_EEE"

EDIT 感谢@SonyGeorge,可以进一步简化为:

gsub( "((_[^_]+){3})_" , "\\1" , x )

答案 1 :(得分:5)

不知道您将在哪个平台上使用

pattern = (([^_]+_){3}[^_]+)_(.*)
replacement = $1.$2  // concat 1 and 2