日期:2014-05-19  浏览次数:20817 次

字符串过滤问题 自己写了一个但比较慢,希望高手指点

for(int   i=0;i <al.Count;i++)
{
string   s   =   al[i].ToString();//需要过滤字符的集合
if(验证短语.IndexOf(s,0,验证短语.Length)   !=   -1)
{
                                                MessageBox.Box( "有非法! ")
}

}

替换较频繁   是否有好方法

------解决方案--------------------
用正规表达式做判断
------解决方案--------------------
ArrayList里面有个拆箱过程比较慢
换成List <string> 会快很多
------解决方案--------------------
楼主是做类似于论坛脏话过滤的功能吗,参考下这个帖子viena(维也纳nn) 最后的回复,用正则处理

http://community.csdn.net/Expert/topic/5383/5383234.xml?temp=.8008997

如果不想替换,只想提示,把最后两行代码改为
if (Regex.IsMatch(sIn, pattern.ToString()))
{
//有非法
}
else
{
//合法
}