必须将单个字符串传递给多个正则表达式模式,并且匹配时我需要匹配的值

时间:2015-02-20 12:10:34

标签: c# .net regex

假设我有三个正则表达式存储在3个变量中,如下所示;

  string regex1 = @"Regex 1 Pattern";
  string regex2 = @"Regex 2 Pattern";
  string regex3 = @"Regex 3 Pattern";

现在我通过一个文本框传递一个字符串进行测试,我怎样才能将它全部与声明的正则表达式进行比较,在匹配时如何在匹配的正则表达式中检索它的值?

根据单一模式进行比较,代码如下:

 Regex r = new Regex(regex1, RegexOptions.IgnoreCase);

但我希望我的字符串能够通过所有声明的模式。

1 个答案:

答案 0 :(得分:3)

您需要创建一个模式列表(您不仅限于3个),然后,您将能够检查输入字符串是否匹配。

var patterns = new string[] { @"Regex 1 Pattern", @"Regex 2 Pattern", @"Regex 3 Pattern" };
var rx = new Regex(string.Join("|", patterns), RegexOptions.IgnoreCase);