如何用正则表达式给特定字符分隔的字符串添加括号?
R语言实现分隔字符串添加带空格的括号
方法一:正则替换(stringr)
直接使用stringr包的str_replace_all配合精准正则,匹配每个被=>分隔的内容块并添加括号:
library(stringr) str <- "Red => Orange => Yellow blue => Grey,black" result <- str_replace_all(str, "(?<=^| => )[^=]+?(?= => |$)", "[ \\1 ]") print(result)
正则逻辑说明:
(?<=^| => ):正向预查,定位到字符串开头或=>之后的位置,确保只匹配分隔块的起始[^=]+?:非贪婪匹配任意非=的字符,避免过度匹配到后续的=>(?= => |$):正向预查,定位到=>或字符串结尾的位置,确保只匹配到分隔块的结束
方法二:拆分-处理-拼接(更直观)
如果觉得正则上手难度高,可采用拆分字符串→单独处理每个元素→重新拼接的思路,逻辑更清晰:
library(stringr) str <- "Red => Orange => Yellow blue => Grey,black" # 按" => "拆分得到独立元素 parts <- str_split(str, " => ")[[1]] # 给每个元素套上带空格的括号 parts_wrapped <- str_c("[ ", parts, " ]") # 用" => "拼接回原格式 result <- str_c(parts_wrapped, collapse = " => ") print(result)
内容的提问来源于stack exchange,提问作者Sonick
相关产品推荐
相关产品推荐

