我正在尝试制定一个正则表达式来捕获最后一个句点之后的所有内容,直到(不包括)句点之后的下划线数字 3。
例如:
ABC_Simple_DEF.dbo.GDE_1_1_Contact_test
应该返回 GDE_1_1
。
我试过使用 [^.]+$
,它包括最后一段之后的所有内容。
表达式 _[^_]+$
包括最后一个下划线和后面的所有内容,这很接近,但不完全是我要找的。
有点卡在这里,不胜感激
最佳答案
你可以使用
[^._]+(?:_[^._]+){2}(?=_[^.]*$)
或者,捕获方法(您需要从结果中获取第 1 组值):
([^._]+(?:_[^._]){2})_[^.]*$
参见 regex demo #1和 regex demo #2 .
详情
[^._]+
- 除了.
和_
之外的 1+ 个字符
(?:_[^._]+){2}
- 两次重复_
- 下划线[^._]+
- 除了.
和_
之外的 1+ 个字符
(?=_[^.]*$)
- 需要_
和除.
以外的 0+ 个字符的正面前瞻紧接在当前位置右侧的字符串末尾。
关于正则表达式 - 最后一个句点和最后一个下划线之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899470/