将字符串与C#中的模式匹配

时间:2014-10-12 11:51:04

标签: c# regex entity-framework

我应该如何将多个字符串与模式进行比较?

值:

var items = new List<string> {"item1", "item2", "item123", "new_item123"};

模式:

"%item1%" - I receive this option with an external system

预期结果:&#34; item1&#34;,&#34; item123&#34;,&#34; new_item123&#34;

我们使用实体框架来搜索数据库中的数据。

3 个答案:

答案 0 :(得分:5)

虽然您可能使用正则表达式:

var pattern = new Regex("/item1/");
var items = new List<string> {"item1", "item2"};

var matches = items.Where(pattern.IsMatch);

为什么不只是:

var items = new List<string> {"item1", "item2"};
var matches = items.Where(item => item.Contains("item1"));

答案 1 :(得分:1)

如果你真的想用RegEx来做,你可以使用它:

Regex r = new Regex("^item1$");
var result = items.Where(x => r.IsMatch(x)).ToList();

答案 2 :(得分:0)

喜欢这个

string ptrn = "item1";
foreach(string s in items) {
   if(s.IndexOf(ptrn) > -1) Console.WriteLine(s);
}