我试图在字符串中替换第四次出现的'_'.例如,
输入
AAA_BBB_CCC_DD_D_EEE
Run Code Online (Sandbox Code Playgroud)
产量
AAA_BBB_CCC_DDD_EEE
Run Code Online (Sandbox Code Playgroud)
有人可以建议一个解决方案?
你可以使用反向引用....
gsub( "(_[^_]+_[^_]+_[^_]+)_" , "\\1" , x )
# [1] "AAA_BBB_CCC_DDD_EEE"
Run Code Online (Sandbox Code Playgroud)
编辑并感谢下面的@SonyGeorge,可以进一步简化为:
gsub( "((_[^_]+){3})_" , "\\1" , x )
Run Code Online (Sandbox Code Playgroud)
不知道你将在哪个平台上使用
pattern = (([^_]+_){3}[^_]+)_(.*)
replacement = $1.$2 // concat 1 and 2
Run Code Online (Sandbox Code Playgroud)