如何用正则删除多个markdown图片标签且保留中间文本,优先stringr方案
问题原因
原正则使用的.+为贪婪匹配模式,会尽可能匹配最长的符合规则的字符串,因此会从第一个 writing to keep  more writing" # 核心正则:精准匹配完整markdown图片结构 result <- str_remove_all(text.string, "!\\[[^\\]]*\\]\\([^)]*\\)") # 输出结果:"writing writing to keep more writing"
简单场景下也可以用非贪婪匹配实现:
result <- str_remove_all(text.string, "!\\[.*?\\]\\(.*?\\)")
基础R 替代方案
无需额外加载扩展包,直接用gsub实现相同效果:
result_base <- gsub("!\\[[^\\]]*\\]\\([^)]*\\)", "", text.string)
内容的提问来源于stack exchange,提问作者lawyeR
相关产品推荐
相关产品推荐

