首页 新闻 会员 周边

判断一个字符串 是否 包含 字符串数组的一个或多个

0
悬赏园豆:10 [已解决问题] 解决于 2011-07-19 22:40

string input="11and22or"

string [] array = {"and","or"}

怎么用正则表达式判断? 正则表达式是否最优解??

xiven的主页 xiven | 初学一级 | 园豆:49
提问于:2011-07-19 00:06
< >
分享
最佳答案
0

for(int i=0,i<array.Length,i++) {if (input.IndexOf(array[i])>=0) return true;}

如上,循环一下不就得了。

否则,你想先动态的构造一个正则表达式?那不还得先把array遍历一遍,费时费力。

收获园豆:10
vons | 小虾三级 |园豆:1033 | 2011-07-19 03:47
其他回答(3)
0

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/
*/

dotNetDR_ | 园豆:2078 (老鸟四级) | 2011-07-19 05:29
0

如果用正则的话:

string input = "11and22or";
string[] array = { "and", "or" };
int i = new Regex(string.Join("|",array)).Matches(input).Count;
Console.WriteLine(
"cnt: " + i.ToString());
Console.ReadKey();

╃小〥斌╄ | 园豆:205 (菜鸟二级) | 2011-07-19 06:25
0

正则表达式一般比较慢,最好使用indexOf

LoveJenny | 园豆:532 (小虾三级) | 2011-07-19 06:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册