Regex以匹配文件路径字符串的数字结尾
本文关键字:字符串 数字 结尾 路径 文件 Regex | 更新日期: 2023-09-27 18:28:52
我有以下文件名,并且希望提取"_R"
:之后的数字
- ''文件名_R10.txt=>10
- ''文件名_R_10.txt=>10
我已经成功地使用了regex:
_R_?('d+)'.txt$
现在,我希望将其调整为使用以下变体:
- ''文件名_R10_1.txt=>10
- ''文件名_R_10_1.txt=>10
- ''文件名_R10_11.text=>10
我试过
_R_?('d+)_?'d+?'.txt$
这似乎适用于后面的例子,但与前面的例子不同。
谢谢。
_R_?('d+)(_'d+)?.txt$
您遇到的问题是'd+?
使重复变得懒惰,而不是可选的。换句话说,它仍然试图匹配至少一个数字,只是试图匹配最小数量(而不是最大数量)的数字才能匹配。
EDIT:要在不引入捕获组的情况下使用分组,可以使用
(?:)
:
_R_?('d+)(?:_'d+)?.txt$
编辑:缺少下划线
As''d不限于0-9位数字:https://stackoverflow.com/a/6479605/5015529,我会使用:_R_?([0-9]+)(?:_[0-9]+)?'.txt$