-5

私は文字列を持っています

PrintFileURL("13572_BranchInformationReport_2012-06-29.zip","13572_BranchInformationReport_2012-06-29.zip",0,"184277","6 月 29 日 1:30","/icons/default.gif")

また

PrintFileURL("13572_IndividualInformationReportDelta_2012-06-29_033352.zip","13572_IndividualInformationReportDelta_2012-06-29_033352.zip",0,"53147","6 月 29 日 3:33","/icons/default.gif")

c# を使用して上記の文字列からと の両方13572_IndividualInformationReportDelta_2012-06-29_033352.zipを抽出したい場合、正規表現は何 でしょうか...?13572_BranchInformationReport_2012-06-29.zip

4

2 に答える 2

1

これは最初の 2 つのファイルに対して正確に機能するはずですが、ファイル名に特殊文字が追加されている場合は機能しません。

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            const string example = "PrintFileURL(\"13572_IndividualInformationReportDelta_2012-06-29_033352.zip\",\"13572_IndividualInformationReportDelta_2012-06-29_033352.zip\",0,\"53147\",\"Jun 29 3:33\",\"/icons/default.gif\")";
            Console.WriteLine(example);

            const string pattern = "\\\"([a-zA-Z0-9\\-_]*?\\..*?)\\\"";
            var regex = new Regex(pattern);
            var result = regex.Matches(example);
            foreach (Match item in result)
            {
                Console.WriteLine(item.Groups[1]);
            }
        }
    }
}
于 2012-06-29T10:59:29.527 に答える
0

これを試すことができます:

正規表現

その後

var regex = new Regex("@(?<=\")(.*?)(?=\")");

var result = regex.Matches(example);
foreach (Match item in result)
{
    Console.WriteLine(item.Groups[1]);
}
于 2012-06-29T11:24:25.160 に答える