使用正则表达式

时间:2015-05-15 04:29:29

标签: c# .net regex

我正在从特定字符串中实现模式提取。 模式应该以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)/。

2 个答案:

答案 0 :(得分:2)

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

你可以这样做。参见演示。

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

答案 1 :(得分:1)

这里是:(?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();