如何用R语言stringr包给逗号分隔的分组文本添加括号
使用R的stringr包给指定分组文本添加括号
你可以通过正则表达式配合stringr的str_replace_all()函数实现这个需求,核心是精准匹配等号后、空格/字符串结尾前的逗号分隔分组,再将其包裹括号。
实现代码
library(stringr) # 原始数据 a <- data.frame(Rule = c("A=0 & B=Grp1,Grp2", "A=0 & B=Grp1,Grp3,Grp4 & C=1")) # 处理文本:给符合条件的分组加括号 a$Rule <- str_replace_all(a$Rule, "(?<==)([^&]*,[^&]*)(?= &|$)", "($1)") # 查看结果 a
正则表达式说明
(?<==):正向预查,匹配前面是等号=的位置(不捕获等号本身)([^&]*,[^&]*):捕获分组,匹配包含至少一个逗号的内容,且内容中不包含&(避免跨规则匹配)(?= &|$):正向预查,匹配后面是&或者字符串结尾的位置(确保只匹配到当前规则的结尾)
运行结果
Rule 1 A=0 & B=(Grp1,Grp2) 2 A=0 & B=(Grp1,Grp3,Grp4) & C=1
内容的提问来源于stack exchange,提问作者hmhensen
相关产品推荐
相关产品推荐

