2012-12-14 62 views
0

我有一個字符串,其中包含Word不止一次.. 我想查找該字的每個出現一個接一個,並且需要在其後添加一些其他字。 。獲取所有字符串中的任意字的索引

示例 -

<start> 
<child1> 
. 
. 
. 
<start> 
<child2> 
.. 

等..

我試過了。

int count = Regex.Matches(StrRemoveWrongData, @"<start>").Count; 

它給我的數目,有任何事情我們可以去每一個發生一個接一個。 並添加低於新詞..

+1

好超負荷你檢查字符串'Replace'? – V4Vendetta

回答

2

根據你的標題,讓所有的指標;

var indexList = Regex.Matches(StrRemoveWrongData, @"<start>").Cast<Match>() 
        .Select(m => m.Index) 
        .ToList(); 

如果更換algorightm是複雜得多,簡單的字符串,那麼你可以使用Regex.Replace

int count = 1; 
var newstr = Regex.Replace(StrRemoveWrongData, @"<start>", 
         m => { 
          //Do some work 
          return String.Format("<child{0}>",count++); 
         } 
      ); 
+0

我從來不知道'Regex.Replace'有這樣一個超負荷!好現在知道... –

+0

如果我的孩子是字符串mychild =「 \ n \ r \ n \ r 」; – Dilip

+0

我在嘗試這個字符串childExtract = Regex.Match(mychild,@「(?s)。*?」).ToString(); //做一些工作 return String.Format(childExtract,count ++);但它alwys replcing第一個孩子 – Dilip

2

你可以簡單地做:StrRemoveWrongData = StrRemoveWrongData.Replace(@"<start>", newString);

+0

但我的每個新聞字符串是新的..例如第一次出現新字符串是然後第二 Dilip

相關問題