0

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

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#。

提前致谢

4

1 回答 1

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());
}
于 2013-08-09T06:33:35.487 回答