正则表达式去除文件名

时间:2013-08-09 05:35:35

标签: c# regex

我在一个具有以下约定的文件夹中有几个文件:

1. Size-2.125-in-0.3083-in.pdf
2. Size-0.1-in-0.3083-in.something.pdf
3. Size-2.11-in-0.3083-in.someotherthing.pdf

如您所见,小数点后的值不是固定数字。如何使用正则表达式删除此文件名。我也只需要.pdf文件(在这种情况下为1)。所有其他不同于1文件名的文件都应该被忽略。

我正在使用这个正则表达式,但如果小数位数发生变化则会失败。

Size-......-in-......-in.pdf

我正在使用C#。

提前致谢

1 个答案:

答案 0 :(得分:0)

这:^Size-([0-9]+\.[0-9]+)-in-([0-9]+\.[0-9]+)-in\.pdf$

应该足够了。在捕获组1和2中,您有数字。其他一切都是固定的,所以我没有抓住它。

测试员:http://regexr.com?35t0c

var rx = new Regex(@"^Size-([0-9]+\.[0-9]+)-in-([0-9]+\.[0-9]+)-in\.pdf$");
var match = rx.Match("Size-2.125-in-0.3083-in.pdf");

Console.WriteLine("Success: {0}", match.Success);

if (match.Success)
{
    Console.WriteLine("Full string: {0}, group 1: {1}, group 2: {2}", 
        match.Groups[0].ToString(), 
        match.Groups[1].ToString(), 
        match.Groups[2].ToString());
}