2013-07-13 214 views
0

我知道,我知道,我可能讓你感到困惑! :)如何在字符串中的特定字符串之後插入字符串?

我有這樣的:

namespace WebPageHeaderFixer 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string folderToSearch = @"C:\Test\"; 

      foreach (string file in Directory.GetFiles(folderToSearch)) 
      { 
       string fileString = File.ReadAllText(file); 

       //Here, I want to insert string X into "fileString" AFTER string Y. 
      } 
     } 
    } 
} 

我想最後一個註冊的TagPrefix後的字符串X添加到變量fileString:

<%@ Register TagPrefix="ucCal" TagName="popupCalendar" Src="../UserControls/popupCalendar.ascx" %> 
<%@ Register TagPrefix="ucRes" TagName="Search" Src="../UserControls/SearchControl.ascx" %> 
<%@ Register TagPrefix="abc" TagName="header" Src="../Header.ascx" %> 
//I want to insert X here 
other code 
some more code 
some ugly code 

我如何去這樣做呢?

*請注意,最後的註冊標籤在文件之間可能會有所不同。

+0

是否有任何'<%@ Register ...%>'標籤跨越多行,或每一行都包含在它自己的行中? –

回答

1

使用INSERT方法和的indexOf方法和lastindexof方法也可以這樣做:的「註冊的TagPrefix最後一次出現以下

int LastRegister = fileString.LastIndexOf("Register TagPrefix"); 
int InsertPosition = fileString.IndexOf('>', LastRegister) + 2; 
fileString = fileString.Insert(InsertPosition, "String x"); 

這臺插入位置過去的「>」該指數2個字符「,它應該把插入位置放在下一行的開始位置。如果字符串的行尾有2個字符,則可能需要將插入位置偏移一個。

1

你可以逐行讀取文件而不是單個字符串嗎?然後,您可以循環查找您感興趣的字符串的最後一次出現,然後您可以將這些行寫回到文件中,然後將字符串插入到該文件之後。

相關問題