如何用字符串中的[i]解析带有正则表达式的字符串

时间:2015-02-11 08:02:34

标签: c# regex

我有这样的表达

 R403[i] == 3 and R404[i] == 2 AND R405[i] == 1 and R403[i+1] == 5 and R404[i+1] == 2 AND R405[i+1] == 1 R231[2]

我希望使用这个正则表达式来表达我的表达式

[R|M|B].*?\]

但是我想要应用它的一个条件必须包含变量i,因此R121[1]不会被捕获。

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,这将是正则表达式:

Regex reg = new Regex(@"[RMB]\d{3}\[.*?i.*?\]");

如果你的"我"在使用i之前,可以使用较少的表达式:

Regex reg = new Regex(@"[RMB]\d{3}\[[^]]*?i[^]]*?\]");

答案 1 :(得分:0)

试试这个解决方案。它将检查模式的组匹配。

 string pattern = @"[RMB]\d{3}\[\d*\]";
 string input = " M403[50] == 3 and R404[i] == 2 AND R405[i] == 1 and R403[i+1] == 5 and R404[i+1] == 2 AND R405[i+1] == 1 R231[2]";

 foreach (Match match in matches)
 {
      Console.WriteLine("Mactch:        {0}", match.Value);
      Console.WriteLine();
  }