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

正则表达式求助:提取字符串右侧第2与第3个下划线之间的内容

解决方案

你需要的是从字符串末尾倒推匹配目标段,不需要依赖双下划线特征,以下是R语言的两种实现方式:

1. stringr包实现(写法更直观)

library(stringr)
string <- "Junk1_Junk2_Junk3__ID1_Junk4_Junk5.pdf"
# 正则逻辑:匹配非下划线字符段,且该段右侧恰好有2个下划线分隔的片段直到字符串末尾
target <- str_extract(string, "[^_]+(?=(_[^_]+){2}$)")

运行后target的值就是ID1,适配所有符合「右侧第2、3个下划线之间取内容」规则的字符串,不需要存在双下划线。

2. 基础R实现(无需加载额外包)

string <- "Junk1_Junk2_Junk3__ID1_Junk4_Junk5.pdf"
target <- sub(".*_([^_]+)(_[^_]+){2}$", "\\1", string)

正则学习测试资源推荐

  • 实时测试工具:常用代码编辑器(VS Code、Sublime Text、Notepad++等)的搜索功能都支持正则模式,写正则时可以直接在编辑器内实时调试匹配效果。
  • 入门学习资料:《正则表达式必知必会》,内容轻量化,覆盖日常80%以上的正则使用场景,适合新手快速上手。
  • 进阶学习资料:《精通正则表达式》,系统讲解正则匹配原理、不同语言的正则引擎差异,适合需要深度掌握正则的场景。

内容的提问来源于stack exchange,提问作者jack kelly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:06