我试图在字符串中替换第四次出现'_'。例如,
输入
AAA_BBB_CCC_DD_D_EEE
输出
AAA_BBB_CCC_DDD_EEE
有人可以建议一个解决方案吗?
答案 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