正则表达式从名称和路径中提取字符串的一部分

时间:2015-07-28 10:07:44

标签: regex string

我需要在文件路径中提取字符串的一部分,如下所示:

Z:\ACB_TACC\9236747171 22 TACC.ACM
Z:\ACB_TACC\Machine1\9236748316_TACC.ACM

在这两种情况下,我需要在TACC.ACM或_TACC.ACM之前的最后一个字符和最后一个数字字符之间提取字符串,我的意思是,在最坏的情况下: 9236747171 22 在第二种情况下: 9236748316

我怎样才能使用正则表达式? 感谢。

2 个答案:

答案 0 :(得分:0)

你可以试试这个,

\\([^\\]*?)(?=[_ ]?TACC\.ACM$)

(?<=\\)[^\\]*?(?=[ _]?TACC\.ACM$)

DEMO

答案 1 :(得分:0)

使用JavaScript,您可以使用(\d|\s)*\d(?!.*\\)。这意味着匹配0个或更多个数字或空格字符后跟一个数字(所以至少一个数字),这样在匹配后字符串中的任何位置都没有\个字符。如果您使用支持正面lookbehind的正则表达式实现,您可以将其添加为匹配前\的条件。

var re = /(\d|\s)*\d(?!.*\\)/;
alert('Z:\\ACB_TACC\\9236747171 22 TACC.ACM'.match(re)[0]);
alert('Z:\\ACB_TACC\\Machine1\\9236748316_TACC.ACM'.match(re)[0]);