You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则删除多个markdown图片标签且保留中间文本,优先stringr方案

问题原因

原正则使用的.+为贪婪匹配模式,会尽可能匹配最长的符合规则的字符串,因此会从第一个![开始一直匹配到整段文本末尾的最后一个),误吞了中间的普通文本。

stringr 解决方案

推荐使用排除型字符集编写正则,准确性更高,可覆盖绝大多数常规markdown图片语法场景:

library(stringr)
text.string <- "writing ![Stairway scene](/media/ClothesFairLady.jpg) writing to keep ![Second scene](/media/attire.jpg) 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:27:03