将if()语句匹配到字符串列表

时间:2016-08-06 18:23:24

标签: c# regex

我有C#程序,我需要检查字符串是否匹配字符串列表中的任何内容。

目前我的方法是:

if (Regex.Matches(data, @"String1").Count > 0 || Regex.Matches(data, @"String2").Count > 0 || Regex.Matches(data, @"String3").Count > 0){
    /*Code...*/
}

所以重点是看“数据”是否匹配任何字符串。

该程序要求我保留一长串可能的字符串并不时地更新列表,因此这个系统效率很低。什么是更好的方式?

1 个答案:

答案 0 :(得分:3)

尝试 Linq

  string[] toFind = new string[] {@"String1", @"String2"};

  if (toFind.Any(item => data.Contains(item))) {
    /*Code...*/
  }

如果您必须使用正则表达式

  string[] patterns = new string[] {@"String1", @"String2"};

  if (patterns.Any(item => Regex.IsMatch(data, item)) {
    /*Code...*/
  }