如何使用R替换方括号内字符串中的逗号为连字符?
R语言替换字符串方括号内逗号的解决方案
原始字符串:
original_str <- "{group_boundaries:[0,2620,2883], sample_boundaries:[0,40,80]}"
期望结果:
"{group_boundaries:[0-2620-2883], sample_boundaries:[0-40-80]}"
方法一:Base R 原生实现
使用正则表达式的正向预查,精准匹配方括号内部的逗号并替换:
result <- gsub(",(?=[^\\]]*\\])", "-", original_str, perl = TRUE)
正则说明:
,(?=[^\\]]*\\]):,直接匹配目标逗号(?=[^\\]]*\\])正向预查规则,确保逗号后方的内容会在遇到]前结束(即该逗号处于方括号内部)
方法二:stringr 包实现(tidyverse 生态)
通过先匹配所有方括号包裹的内容,再对每个匹配块内部替换逗号:
library(stringr) result <- str_replace_all(original_str, "\\[([^\\]]+)\\]", function(match) { str_replace_all(match, ",", "-") })
两种方法执行后,result都会得到你需要的目标字符串。
内容的提问来源于stack exchange,提问作者Lucky sardar
相关产品推荐
相关产品推荐

