首页 > 解决方案 > 无法在两个单词之间匹配 C# 中的多行字符串

问题描述

我正在尝试将BEGINEND之间的内容匹配到一个名为numbers的捕获组中,来自该字符串note

   string note = @"BEGIN
   781-222-3311
   9789001122
   7817770000 to 7817770010
   END";

我将匹配组值放入的变量是numbers。我用来匹配字符串的内容如下:

   string numbers = "";
   Regex numberEncapsulationRegex = new Regex(@"begin\n(?<numbers>.+)\nend", RegexOptions.IgnoreCase);
   Match numberCatch = numberEncapsulationRegex.Match(note);
   if (numberCatch.Success)
   {
       Console.WriteLine("SUCCESS: \n");
       numbers += numberCatch.Groups["numbers"].Value;
   }

我曾尝试将 RegexOptions.Multiline 与 RegexOptions.IgnoreCase 一起使用,并且还尝试过使用:

   (?i:begin)\n(?<numbers\>.+)\n(?i:end)
   (?i:begin)(\n?<numbers>.+\n)(?i:end)
   (?<=BEGIN)(.*)(?=END)

无法使其正常工作。感谢您的阅读和帮助,如果愿意的话。

标签: c#regexstringregex-group

解决方案


推荐阅读