我正在使用BPM软件来自动执行某些过程,在我的流程中,我需要根据名称对某些文件进行分组。
我需要创建一个正则表达式,它返回没有后缀的项目名称。 更大的问题是文件名中的'Foo_Bar'部分,它在每个项目中都会发生变化。
我正在尝试使用前瞻性正则表达式解决它,但出于任何原因它不起作用。
使用正则表达式可以解决这类问题吗?
var arr = [
'Company-2014-09-19_Foo_Bar_Barcoded_Layout-1.pdf',
'Company-2014-09-19_Foo_Bar_Barcoded_Layout-2.pdf',
'Company-2014-09-19_Foo_Bar_Layout-1.pdf',
'Company-2014-09-19_Foo_Bar_Layout-2.pdf',
'Company-2014-09-19_Foo_Bar.xml',
'Company-2014-09-19_Foo_Bar_Report.pdf'
];
re = /Company-\d{4}-\d{2}-\d{2}\w+(?=_Barcoded|_Layout|_Report|\.)/;
for(var i=0; i<arr.length; i++) {
var match = arr[i].match(re);
var str = match ? match[0] : null
console.log(str);
}�
输出:
Company-2014-09-19_Foo_Bar_Barcoded
Company-2014-09-19_Foo_Bar_Barcoded
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar_Report�
预期输出:
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar
Company-2014-09-19_Foo_Bar�
答案 0 :(得分:0)
我试过这个表达:
(Company-\d{4}-\d{2}-\d{2}\w+?)(?:_Barcoded|_Layout|_Report)*(?:-\d+)?(?:\.\w+)