【问题标题】:c# 2010 regex filename match + ftp upload [closed]c#2010正则表达式文件名匹配+ ftp上传[关闭]
【发布时间】:2012-08-20 16:40:38
【问题描述】:

任务:我想上传一个文件到我的 ftp,但他的文件没有扩展名,也没有 trID 或任何东西,它只是“文件”,文件名是 abcd 后跟 19 个随机数字。

示例:

abcd9876543211234567892

abcd6662325999292112450

等等。

所以我想做的是添加一个正则表达式来查找以 abcd 开头的匹配文件名,然后在此结束时上传所有匹配的文件。

【问题讨论】:

  • 您可能想从源代码中删除您的 ftp 信息。
  • 抱歉,我在我的工作网站上看不到这些链接。但是你可以使用正则表达式^abcd\d{19}$
  • 请编辑您的帖子并包含您有问题的代码的小示例(7-10 行效果最好)。还要确保您的问题看起来不像“我需要做 XXXX,请为我做”。 (我已从您的问题中删除了一些不相关的文本并将“问题:”替换为“任务”,因为它并没有真正指定您在代码中遇到的任何问题/问题)。
  • 您需要在 abcd 之后精确匹配 19 个数字还是只在 abcd 之后匹配任何数字?
  • 所以您希望我们完成您的项目!

标签: c# regex ftp filenames


【解决方案1】:

我无法从这里访问您的链接。
但是,这应该是对静态方法 RegEx.IsMatch 的简单调用。
(我假设您要匹配以“abcd”开头的文件,并且后面也正好有 19 位数字)。

    // First get the list of filenames. I am using a string array for simplicity to denote input data.
    // I believe you are getting a collection from Directory.GetFiles
    string[] fileNames = { "abcd9876543211234567892", "abcd6662325999292112450"};
    string pattern = @"^abcd\d{19}$";
    foreach (string fileName in fileNames)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(fileName, pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
        {
            //Do your upload
        }
        else
        {
            //Ignore or Record that this file is not eligible for upload or whatever...
        }
    }

如果您需要匹配以“abcd”开头的文件名,后跟只有数字或没有,则将模式修改为^abcd\d*$

【讨论】:

  • 所以我和朋友一起完成了主要的编码,现在只需要做一些东西。想感谢 kash 给了我一个新的想法,最终让我的朋友想出了解决方案。如果您不想帮助,请不要评论给 Anirudha 和 alexei 吗?顺便说一句,要求某人完成自己无法完成的事情有什么不对?是什么寻求帮助是关于,我从完成编码中学习到现在已经使用 c# 4-5 天了。但无论如何,感谢 Kash 的帮助 :) 如果你想要解决方案,我可以发布它。
【解决方案2】:

$abcd\d+

使用此表达式对 Directory.GetFiles 返回的所有字符串运行正则表达式引擎,在您要查找图像的目录上并上传与此模式匹配的图像。

我不会发布代码,但是一旦实施,它应该会给你一个可行的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多