正则表达式代码如何过滤所有只包含数字并以.jpg和/或_number.jpg结尾的名称?

时间:2014-04-21 13:37:47

标签: regex sql-server-2008 ssis expression

如何过滤所有由数字组成并以.jpg和/或_number.jpg结尾的名称?

背景资料: 在SSIS 2008中,我有一个foreach循环,它将文件名存储到所有jpg文件的变量中。文件的枚举器配置目前是:*.jpg 这将处理所有jpg文件。

代码是什么,所以它只会处理喜欢的名字?

3417761506233.jpg
3417761506233_1.jpg
5414233177487.jpg
5414233177487_1.jpg
5414233177487_14.jpg

但不是这样的名字:

abc.jpg
abc123.jpg
def.png
456.png

顺便说一下,数字代表EAN代码。 我想到了这段代码:

\d|_|.jpg

但是SSIS会返回一个错误,说明文件(名称)位于文件夹中时没有符合条件的文件。

enter image description here

3 个答案:

答案 0 :(得分:1)

为此,您可以使用以下正则表达式:

^\d+(_\d+)?.jpg$

演示:http://regex101.com/r/qC7oV3

答案 1 :(得分:1)

^(\d+(?:_\d+)?\.jpg$)

DEMO - > http://regex101.com/r/dM9rJ7

<强>匹配

3417761506233.jpg
3417761506233_1.jpg
5414233177487.jpg
5414233177487_1.jpg
5414233177487_14.jpg

<强>不包含:

abc.jpg
abc123.jpg
def.png
456.png

答案 2 :(得分:1)

您可以在循环中使用脚本任务来执行正则表达式过滤: http://microsoft-ssis.blogspot.com/2012/04/regex-filter-for-foreach-loop.html enter image description here

或者您可以使用(免费)第三方调查员: http://microsoft-ssis.blogspot.com/2012/04/custom-ssis-component-foreach-file.html enter image description here