2013-02-21 29 views
0

我在搜索和删除字符串中的字符串时遇到问题。 当你在图像中看我想要删除的应答器之间的字符串和使用我的代码。但它要删除,所以我的问题在哪里?将字符串删除到字符串中

string chaine = im; 
int href = chaine.IndexOf("<a href"); 
int ahref = chaine.IndexOf("</a>"); 
string sup = ""; 
for (int c = href; c < ahref; c++) 
{ 
    sup = sup + chaine[c]; 
    if (chaine[c] != ahref) 
     break; 
} 
chaine = chaine.Replace(sup, ""); 
im = chaine; 

my screen shoot

+0

您发布的代码非常不清楚。请发布其中包含的方法。 – Brian 2013-02-21 17:41:36

+0

你会得到什么结果?由于样本是图片,因此我们无法轻松复制/粘贴以确定意外结果 – DiskJunky 2013-02-21 17:42:29

+3

您立即跳出for循环。 'ahref'是一个int(字符串中第一个“”的位置),而'chaine [c]'是一个char(“<”)。 – yoozer8 2013-02-21 17:42:57

回答

2

您的代码可以简化。请尽管添加一些错误检查或至少一个try/catch以防子字符串未找到。

int start = im.IndexOf("<a href"); 
int stop = im.IndexOf("</a>", start); 
im = im.Remove(start, stop + 4 - start) // 4 is the length of the stop string 
+0

thnx它的工作,但只有第一个应答器我试图使用此方法 布尔验证= false; while(verifier) int start = im.IndexOf(“”); im = im.Remove(start,stop + 4 - start); if(start> -1) verif = true; } 并且不能删除所有的href nalise – Amin 2013-02-21 18:00:47

1

你为什么不尝试一个正则表达式替换。

chaine = Regex.replace(chaine, @"\<a(?<attrs>.*)\>.*\<a/\>", m => "<a" + m.Groups["attrs"] + "></a>") 
+0

它是行不通的,它在应答器上删除而不是在应答器之间的字符串 – Amin 2013-02-21 18:05:10