C# ted试图摆脱其他行。@hispeedzintarwebz,最好将此作为一个新的SO问题来问,包括您现在必须处理的(更改的)输入数据、预期结果应该是什么以及您使用的(修改的?)regex。不幸的是,从您的评论中,我并没有真正了解您的新输入数据和修改后的正则

C# ted试图摆脱其他行。@hispeedzintarwebz,最好将此作为一个新的SO问题来问,包括您现在必须处理的(更改的)输入数据、预期结果应该是什么以及您使用的(修改的?)regex。不幸的是,从您的评论中,我并没有真正了解您的新输入数据和修改后的正则,c#,regex,csv,C#,Regex,Csv,ted试图摆脱其他行。@hispeedzintarwebz,最好将此作为一个新的SO问题来问,包括您现在必须处理的(更改的)输入数据、预期结果应该是什么以及您使用的(修改的?)regex。不幸的是,从您的评论中,我并没有真正了解您的新输入数据和修改后的正则表达式是什么样子的。@hispeedzintarwebz“,表示正则表达式中一个组的名称。看看正则表达式中的组(?(?)该组的模式是“(?必须喜欢可视化。也需要在我的答案中加入这一点:) BEGIN: >>DocTypeName:


ted试图摆脱其他行。@hispeedzintarwebz,最好将此作为一个新的SO问题来问,包括您现在必须处理的(更改的)输入数据、预期结果应该是什么以及您使用的(修改的?)regex。不幸的是,从您的评论中,我并没有真正了解您的新输入数据和修改后的正则表达式是什么样子的。@hispeedzintarwebz“,表示正则表达式中一个组的名称。看看正则表达式中的组
(?(?)该组的模式是“(?必须喜欢可视化。也需要在我的答案中加入这一点:)
BEGIN:
>>DocTypeName: Zoning Letter
>>DocDate: 4/16/2014
Loan Number: 355211
Ad Hoc: ZONING VERIFICATION LETTER
Document Handle: 712826
>>DiskgroupNum: 102
>>VolumeNum: 367
>>NumOfPages: 0
>>FileSize: 261711
>>DocRevNum: 0
>>Rendition: 1
>>PhysicalPageNum: 0
>>ItemPageNum: 0
>>FileTypeNum: 16
>>ImageType: 0
>>Compress: 2
>>Xdpi: 0
>>Ydpi: 0
>>FileName: \V367\2855\1558564.PDF
BEGIN:
>>DocTypeName: Zoning Letter
>>DocDate: 4/16/2014
Loan Number: 355211
Ad Hoc: ZONING CODES COMPLIANCE LETTER
Document Handle: 712825
>>DiskgroupNum: 102
>>VolumeNum: 367
>>NumOfPages: 0
>>FileSize: 19441
>>DocRevNum: 0
>>Rendition: 1
>>PhysicalPageNum: 0
>>ItemPageNum: 0
>>FileTypeNum: 16
>>ImageType: 0
>>Compress: 2
>>Xdpi: 0
>>Ydpi: 0
>>FileName: \V367\2855\1558563.pdf
\r\n(?!BEGIN).*\:
BEGIN:((?:(?!BEGIN:).)*)
(?<=BEGIN:\r\n)(?:.*:\s*(?:(?<value>(?<!Ad Hoc:\s*).*)|.*)(?:\r\n)?)*?(?=BEGIN:|$)
foreach (Match m in Regex.Matches(text, @"(?<=BEGIN:\r\n)(?:.*:\s*(?:(?<value>(?<!Ad Hoc:\s*).*)|.*)(?:\r\n)?)*?(?=BEGIN:|$)"))
{
    Console.WriteLine(string.Join(",", m.Groups["value"].Captures.Cast<Capture>().Select(c => c.Value)));
}
Zoning Letter,4/16/2014,355211,712826,102,367,0,261711,0,1,0,0,16,0,2,0,0,\V367\2855\1558564.PDF
Zoning Letter,4/16/2014,355211,712825,102,367,0,19441,0,1,0,0,16,0,2,0,0,\V367\2855\1558563.pdf
Zoning Letter;4/16/2014;355211;712826;102;367;0;261711;0;1;0;0;16;0;2;0;0;\V367\2855\1558564.PDF
Zoning Letter;4/16/2014;355211;712825;102;367;0;19441;0;1;0;0;16;0;2;0;0;\V367\2855\1558563.pdf
@"(([\r\n]+\s*Ad\sHoc:.*?[\r\n]+)|([\r\n]+(?!\s*BEGIN))).*?:\s*"
[\r\n]+\s*Ad\sHoc:.*?[\r\n]+.*?:\s*
([\r\n]+(?!\s*BEGIN)).*?:\s*
BEGIN:;Zoning Letter;4/16/2014;355211;712826;102;367;0;261711;0;1;0;0;16;0;2;0;0;\V367\2855\1558564.PDF
BEGIN:;Zoning Letter;4/16/2014;355211;712825;102;367;0;19441;0;1;0;0;16;0;2;0;0;\V367\2855\1558563.pdf
"(?m)^BEGIN:;"
string sourceData = ... your text with the source data ...

Regex reEmptyLines = new Regex(@"[\s\r\n]+[\r\n]", RegexOptions.Compiled);
Regex reSemicolons = new Regex(@"(([\r\n]+\s*Ad\sHoc:.*?[\r\n]+)|([\r\n]+(?!\s*BEGIN))).*?:\s*", RegexOptions.Compiled);
Regex reBegin = new Regex("(?m)^BEGIN:;", RegexOptions.Compiled);

string processed =
    reBegin.Replace(
        reSemicolons.Replace(
            reEmptyLines.Replace(sourceData, "\r\n"),
            ";"
        ),
        string.Empty
    );