另类坑爹写法~

  闲来无事,中午一群里同学问了一个简单的问题,就是找寻abc12345def中的12345,也就是根据abc和def找到中间那串,想来正则是最简单的做法了。。奈何本人比较无聊,又想了其他的方法,代码如下
环境:.net4.0+vs2010
  class Program
{
static void Main(string[] args)
{
string test = "abc*12345*def";
string p = "abc";
string n = "def";
string pTemp = string.Empty;
string nTemp = string.Empty;
string result = string.Empty;
List<char> charList = test.Where(a =>
{
//开始搜索的条件
pTemp = !pTemp.Equals(p) ? p.IndexOf(a) >= 0 ? pTemp + a : string.Empty : pTemp;
//结束搜索的条件
if (n.Equals(nTemp))
return false;
else
nTemp = n.IndexOf(a) >= 0 ? nTemp + a : string.Empty;
//判定何时重新计数匹配
pTemp = pTemp.Length > p.Length ? string.Empty : pTemp;
nTemp = nTemp.Length > n.Length ? string.Empty : nTemp;
return pTemp.Equals(p) ? true : false;
}).ToList();
//重新组合
for (int i = 1; i <= charList.Count-n.Length-1;i++ )
{
result += charList[i];
}
Console.WriteLine(result);
//输出*12345*
}
}
呵呵,利用吃饭的时间写了一下,发现问题还是很多的~不禁想到编译原理的算法。。。呵呵,想来有空,模拟一个~,这个就暂时放在这,也给大家找找茬。哈哈,觉得无聊可以看看~
posted @ 2011-12-06 14:19  露高夫  阅读(166)  评论(0)    收藏  举报