for(int i=0,i<array.Length,i++) {if (input.IndexOf(array[i])>=0) return true;}
如上,循环一下不就得了。
否则,你想先动态的构造一个正则表达式?那不还得先把array遍历一遍,费时费力。
using System;
using System.Linq;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string input = "11and22or";
string[] array = { "and", "or" };
int i = array.Where(m => input.Contains(m)).Count();
Console.WriteLine("匹配的次数为: " + i.ToString());
Console.ReadKey();
}
}
}
/*
以上的代码通过测试!
by dotNetDR_ http://www.cnblogs.com/highend/
*/
如果用正则的话:
string input = "11and22or";
string[] array = { "and", "or" };
int i = new Regex(string.Join("|",array)).Matches(input).Count;
Console.WriteLine("cnt: " + i.ToString());
Console.ReadKey();
正则表达式一般比较慢,最好使用indexOf