如何比较多个字符串与模式?将字符串与C中的模式进行匹配#
值:
var items = new List<string> {"item1", "item2", "item123", "new_item123"};
模式:
"%item1%" - I receive this option with an external system
预期的结果: “物品1”, “item123”, “new_item123”
我们使用实体框架在数据库中搜索数据。
如何比较多个字符串与模式?将字符串与C中的模式进行匹配#
值:
var items = new List<string> {"item1", "item2", "item123", "new_item123"};
模式:
"%item1%" - I receive this option with an external system
预期的结果: “物品1”, “item123”, “new_item123”
我们使用实体框架在数据库中搜索数据。
虽然你很可能使用正则表达式:
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"));
如果你真的想用一个RegEx
做到这一点,你可以用这个:
Regex r = new Regex("^item1$");
var result = items.Where(x => r.IsMatch(x)).ToList();
代码的第一部分将不会编译(正则表达式未声明) – 2014-10-12 12:05:22
@FlatEric哎呀,对,谢谢。 – nvoigt 2014-10-12 12:06:11
@nvoigt,谢谢 – Pavel 2014-10-12 12:15:03