当前位置:  开发笔记 > 编程语言 > 正文

正则表达式匹配文件路径字符串的数字末尾

如何解决《正则表达式匹配文件路径字符串的数字末尾》经验,为你挑选了1个好方法。

我有以下文件名,并希望在以下后提取数字"_R":

\ FileName_R 10 .txt => 10

\ FileName_R_ 10 .txt => 10

我已经成功使用了正则表达式:

_R_?(\d+)\.txt$

现在,我正在寻求使其适应以下变化:

\ FileName_R 10 _1.txt => 10

\ FileName_R_ 10 _1.txt => 10

\ FileName_R 10 _11.txt => 10

我试过了

_R_?(\d+)_?\d+?\.txt$

这似乎适用于后面的例子,但与第一个例子有关.

谢谢.



1> ndnenkov..:
_R_?(\d+)(_\d+)?.txt$

你遇到的问题是\d+?使重复变得懒惰而不是使它成为可选的.换句话说,它仍然试图匹配至少一个数字,只是它试图匹配最小数量(而不是最大数量)的数字,以便匹配.


编辑:要在不引入捕获组的情况下使用分组,您可以使用(?:):

_R_?(\d+)(?:_\d+)?.txt$

编辑:缺少下划线

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有