我应该如何将多个字符串与模式进行比较?
值:
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;
我们使用实体框架来搜索数据库中的数据。
答案 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);
}