数据源如下:锄地|http://www.网址.com/webqq_27/
施肥|http://www.网址.com/webqq_26/ 《《 前面相同后面网址不同
施肥|http://www.网址.com/webqq_25/ 《《 前面相同后面网址不同
杀虫|http://www.网址.com/webqq_24/======================问题如下:要根据“|”(分隔符)前面中文的数据进行比对重复提取,但是后面的也必须带着一起,如果分散将无法后续工作将产生混乱。只根据“|”(分隔符)很好排除重复,网上方法比较多。但是加入“|”(分隔符)后面一组后难度加大。=========================程序理想结果如下:
锄地|http://www.网址.com/webqq_27/
施肥|http://www.网址.com/webqq_26/ 《《《 因 “|”(分隔符) 前的数据相同,排除掉一个。
杀虫|http://www.网址.com/webqq_24/
施肥|http://www.网址.com/webqq_26/ 《《 前面相同后面网址不同
施肥|http://www.网址.com/webqq_25/ 《《 前面相同后面网址不同
杀虫|http://www.网址.com/webqq_24/======================问题如下:要根据“|”(分隔符)前面中文的数据进行比对重复提取,但是后面的也必须带着一起,如果分散将无法后续工作将产生混乱。只根据“|”(分隔符)很好排除重复,网上方法比较多。但是加入“|”(分隔符)后面一组后难度加大。=========================程序理想结果如下:
锄地|http://www.网址.com/webqq_27/
施肥|http://www.网址.com/webqq_26/ 《《《 因 “|”(分隔符) 前的数据相同,排除掉一个。
杀虫|http://www.网址.com/webqq_24/
用subString().
然后对截取结果进行比对。
用equal().
我的思路是你先把他读入StringBuilder里,在按分隔符取出来放在HashTable里,若用了,就不添加了,最后在把他存在一个地方(锄地)就设置为key
恩。我也刚刚翻了书,感觉hashtable可以解决问题。现在着手做做,看。
//你自己初始化
Hashtable tb = new Hashtable();
foreach (string str in arr )
{
string str1=str .Substring (0,2);
string str2=str .Substring (2,最后);
if (!tb.Contains(str))
{
tb.Add(str1, str2);
}
}
//现在你就这个表遍历出来就可以了。。
string [] arr=new string [100]; Hashtable tb = new Hashtable();
foreach (string str in arr )
{
string str1=str .Substring (0,2);
string str2=str .Substring (2,最后);
if (!tb.Contains(str1))
{
tb.Add(str1, str2);
}
}
//现在你就这个表遍历出来就可以了。。
施肥|http://www.网址.com/webqq_26/
施肥|http://www.网址.com/webqq_25/
杀虫|http://www.网址.com/webqq_24/
锄地|http://www.网址.com/webqq_23/
锄地|http://www.网址.com/webqq_22/
";
Regex reg = new Regex(@"(?s)(([^\|\n]+)\|(?:(?!\2).)*)\2[^\n]+(\n|$)");
while (test != (test = reg.Replace(test, "$1"))){}
richTextBox2.Text = test;
要的就是他加不进去,try catch 报错后自己进行处理。直接忽略进入ht.add下一步