使用Regex提取所有模式

本文关键字:模式 提取 Regex 使用 | 更新日期: 2023-09-27 17:49:22

我正在从一个特定的字符串中实现模式提取。该模式应该以Column((表示Excel数据输入中的特定列)或Cell((表示Excel数据输入中的特定单元格)开始。

  • 输入字符串= "列(F)/100 +单元格(B,2)/10"
  • 期望输出:列(F),单元格(B,2)。

源代码:

List<string> result = new List<string>();
Regex patternParser = new Regex(@"(?:Column'()'S+').+?|(?:Cell'()'S+').+?", RegexOptions.Compiled | RegexOptions.IgnoreCase);
foreach (Match m in patternParser.Matches(VarEval))
{
     result.Add(m.Value);
}

我得到了结果:列(F)/和单元格(B,2)/。

使用Regex提取所有模式

'b(?:Column|Cell)'b'(.*?')

您可以简单地这样做。看到演示。

https://regex101.com/r/mT0iE7/26

(?i)(?:Column|Cell)'([^()]+?')

List<string> result = Regex.Matches("Column(F)/100 + Cell(B,2)/10",
                                    @"(?i)(?:Column|Cell)'([^()]+?')")
                           .Cast<Match>()
                           .Select(m=>m.Value)
                           .ToList();