如何在字符串中的特定字符串后插入字符串?

时间:2013-07-13 00:13:15

标签: c# string insert

我知道,我知道,我可能会困惑你! :)

我有这个:

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.
            }
        }
    }
}

我想在LAST Register 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

我该怎么做?

*请注意,文件之间的最后一个Register标记可能不同。

2 个答案:

答案 0 :(得分:1)

您可以逐行而不是单个字符串读取文件吗?然后,您可以遍历这些行以查找您感兴趣的字符串的最后一个匹配项,然后您可以将这些行写回文件,然后在其后面插入字符串。

答案 1 :(得分:1)

使用insert方法和indexof方法以及lastindexof方法可以这样做:

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

这会将插入位置设置为超过'&gt;'索引的2个字符在最后一次出现“Register TagPrefix”之后,应该将插入位置放在下一行的开头。如果字符串的末尾有2个字符,则可能需要将插入位置偏移一个。