regex - 正则表达式 - 最后一个时期和最后一个下划线之间的所有内容
问题描述
我正在尝试制定一个正则表达式来捕获最后一个时期之后的所有内容,直到(不包括)该时期之后的下划线数字 3。
例如:
ABC_Simple_DEF.dbo.GDE_1_1_Contact_test
应该返回GDE_1_1
。
我试过使用[^.]+$
which 包括最后一段时间之后的所有内容。该表达式_[^_]+$
包括最后一个下划线和之后的所有内容,这很接近,但不完全是我想要的。
有点卡在这里,希望有任何帮助
解决方案
您可以使用
[^._]+(?:_[^._]+){2}(?=_[^.]*$)
或者,捕获方法(您需要从结果中获取第 1 组值):
([^._]+(?:_[^._]){2})_[^.]*$
请参阅正则表达式演示 #1和正则表达式演示 #2。
细节
[^._]+
- 1+ 字符以外的.
和_
(?:_[^._]+){2}
- 两次重复_
- 一个下划线[^._]+
- 1+ 字符以外的.
和_
(?=_[^.]*$)
- 一个积极的前瞻,需要_
0+ 个字符,而不是.
直到当前位置右侧的字符串末尾。
推荐阅读
- c# - Win2d CanvasDrawingSession.Blend 的使用
- r - 如何将特定日期设置为一年的开始日期
- postgresql - 在 PgAdmin 4 中恢复 .SQL 文件
- angular - 找不到模块“dotenv”或其相应的类型声明
- asp.net - 发布 Azure Web App 时无法前进
- python - 如何读取 CSV 文件并跳过标题行
- javascript - 尝试在页面上创建一个 IF 但它不起作用
- javascript - 为什么有对象时控制台中显示“Null is not an Object”?
- unetstack - 如何将 JANUS 信号录制为 wav 文件?
- python - 使用 Plotly 创建堆积条形图