文件顺序>查找名称模式

发布于 2024-10-25 21:58:57 字数 665 浏览 3 评论 0原文

我正在尝试找出一种可靠的方法来解决多种类型的文件序列。

考虑这些序列

file_0000.jpg
file_0001.jpg
file_0002.jpg 等
&
new1File001.jpg
new1File002.jpg
new1File003.jpg

因此需要找出序列码的第一个小数点从哪里开始。

FileInfo[] files = new DirectoryInfo(@"\\fileserver\").GetFiles("*.*", SearchOption.AllDirectories);
var grouped = files.OrderBy(f => f.Name).GroupBy(f => f.Name.Substring(0, f.Name.LastIndexOf("_")));

显然,这会找到序列编号以“_”分隔的文件序列。我希望它按最后一个小数序列的第一个小数的位置进行过滤。我的正则表达式技能不好,即使这样我也不知道如何在巴巴表达式中使用它。

主要问题是,如何找出上述情况下数字字符串的开始位置。

任何指点都会很棒!
谢谢,
-约翰

I'm trying to figure out a solid way to solve multiple types of file sequences.

Consider these sequences

file_0000.jpg
file_0001.jpg
file_0002.jpg etc
&
new1File001.jpg
new1File002.jpg
new1File003.jpg

So it needs to find out where the first decimal of the sequence code starts.

FileInfo[] files = new DirectoryInfo(@"\\fileserver\").GetFiles("*.*", SearchOption.AllDirectories);
var grouped = files.OrderBy(f => f.Name).GroupBy(f => f.Name.Substring(0, f.Name.LastIndexOf("_")));

Obviously this finds file sequences where the sequence numbering is separated by "_". I want it to be filtered by the position of the first decimal of the last decimal sequence. My regex skills are not good and even then I don't know how to use it in the lamba expression.

The main question is, how can I find out where the number string starts for the above mentioned cases.

Any pointers would be great!
Thanks,
-Johan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗化ㄋ丶相逢 2024-11-01 21:58:57

是的,正则表达式是为了拯救:

var r = new Regex(@".+(\d{2,}).");
var grouped = 
    files.
        OrderBy(f => f.Name).
        GroupBy(f => r.Match(f.Name).Groups[0].Value);

Yes, regex is to rescue:

var r = new Regex(@".+(\d{2,}).");
var grouped = 
    files.
        OrderBy(f => f.Name).
        GroupBy(f => r.Match(f.Name).Groups[0].Value);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文