c#将字符串列表与正则表达式列表进行比较
我有两份清单;一个包含我要测试的字符串,另一个包含正则表达式作为字符串。c#将字符串列表与正则表达式列表进行比较,c#,regex,C#,Regex,我有两份清单;一个包含我要测试的字符串,另一个包含正则表达式作为字符串。 我想让它测试StringList中的每个项目,以便使用RegexList中的每个项目测试regex.IsMatch 实现这一点最简单的方法是什么? 我必须先提取包含正则表达式的字符串吗?或者可以不提取正则表达式吗?可以使用foreach语句来提取 foreach(string item in StringList) { foreach(var reg in regexList) { if(reg.IsMat
我想让它测试StringList中的每个项目,以便使用RegexList中的每个项目测试
regex.IsMatch
实现这一点最简单的方法是什么?
我必须先提取包含正则表达式的字符串吗?或者可以不提取正则表达式吗?可以使用foreach语句来提取
foreach(string item in StringList)
{
foreach(var reg in regexList)
{
if(reg.IsMatch(item))
///Do something
}
}
是否要检查字符串是否与任何正则表达式匹配?如果是这样的话,你能把这些表达式连接在一起,然后与之匹配吗?类似于
var regex=newregex(regexlist.Join(“|”);foreach(strings..s){regex.IsMatch(s);}
。正则表达式已经以字符串格式存在于正则表达式列表中。我想检查StringList中的每个字符串和RegexList中的每个正则表达式。但这是两个简单的for循环,还是我遗漏了什么?如果(Regex.IsMatch(item,reg))?@user123456是的,这是正确的方法。但是:创建正则表达式非常昂贵。Net实习生最后使用的15个正则表达式-因此,如果正则表达式列表长于15个,那么循环的开销将非常大,因为必须不断创建新的正则表达式。在这种情况下,最好只创建一次正则表达式,然后循环遍历这个正则表达式列表。我昨天分析了一个应用程序,它没有正确地插入正则表达式-更改它可以减少30%的处理时间(一行代码!)