C# 更换/更换记事本中的所有操作

C# 更换/更换记事本中的所有操作,c#,.net,winforms,C#,.net,Winforms,我正在用C#winforms创建一个记事本程序。请就如何执行替换/全部替换操作向我提出一些建议。我认为最好的方法是在这种情况下使用正则表达式。也许这篇文章有帮助 它是关于使用正则表达式搜索/替换机制的 Thorsten我认为最好的方法是在这种情况下使用正则表达式。也许这篇文章有帮助 Console.WriteLine("TEXT".Replace("EX","XE")); 它是关于使用正则表达式搜索/替换机制的 托尔斯滕 Console.WriteLine("TEXT".Replace("EX

我正在用C#winforms创建一个记事本程序。请就如何执行替换/全部替换操作向我提出一些建议。

我认为最好的方法是在这种情况下使用正则表达式。也许这篇文章有帮助

它是关于使用正则表达式搜索/替换机制的


Thorsten

我认为最好的方法是在这种情况下使用正则表达式。也许这篇文章有帮助

Console.WriteLine("TEXT".Replace("EX","XE"));
它是关于使用正则表达式搜索/替换机制的

托尔斯滕

Console.WriteLine("TEXT".Replace("EX","XE"));
返工:

var s="TEXT";
Console.WriteLine(s.Replace("EX","XE"));

评论中问题的简单实现:

        Console.WriteLine("TEXT".IndexOf("EX"));
        var s="TEXT";
        var f = "EX";
        var r = "XE";
        var i = s.IndexOf(f);
        s=s.Remove(s.IndexOf(f), f.Length);
        s = s.Insert(i, r);
        Console.WriteLine(s);
要使用简单的扩展方法替换backward,请将上述方法颠倒过来并使用.Reverse()

请注意.IndexOf(f)有一个可用于单步执行的起始值.IndexOf(f,start)

返工:

var s="TEXT";
Console.WriteLine(s.Replace("EX","XE"));

评论中问题的简单实现:

        Console.WriteLine("TEXT".IndexOf("EX"));
        var s="TEXT";
        var f = "EX";
        var r = "XE";
        var i = s.IndexOf(f);
        s=s.Remove(s.IndexOf(f), f.Length);
        s = s.Insert(i, r);
        Console.WriteLine(s);
要使用简单的扩展方法替换backward,请将上述方法颠倒过来并使用.Reverse()


请注意.IndexOf(f)有一个起始值.IndexOf(f,start),可用于单步执行。

您可以先模拟Ctrl+H快捷键以显示替换对话框,然后使用PInvoke获取“查找内容”和“替换为”编辑控件的窗口句柄;最后更改两个编辑控件的文本,并模拟按钮单击“全部替换”

可能使用的API包括:

GetWindowText()
SetWindowText()
SetForeGroundWindow()
SendKeys.Send()

您可以首先模拟Ctrl+H快捷键以显示替换对话框,然后使用PInvoke获取“查找内容”和“替换为”编辑控件的windows句柄;最后更改两个编辑控件的文本,并模拟按钮单击“全部替换”

可能使用的API包括:

GetWindowText()
SetWindowText()
SetForeGroundWindow()
SendKeys.Send()

还有更多细节吗?您希望支持哪种选项?区分大小写?另外,您已经尝试过什么?我正在尝试在RichtextBox.text中搜索替换文本的第一个索引并替换它。然后从该字符串创建一个子字符串,并再次搜索剩余字符串中的第一个索引,但这会产生一些问题,在这里我尝试执行替换/替换所有区分大小写的操作。有更多详细信息吗?您希望支持哪种选项?区分大小写?另外,您已经尝试过什么?我正在尝试在RichtextBox.text中搜索替换文本的第一个索引并替换它。然后从中创建一个子字符串,并再次搜索剩余字符串中的第一个索引,但这会产生一些问题,在这里我尝试执行替换/替换所有操作,该操作区分大小写。这在替换所有字符串中效果很好,但如果我们想用findnext逐个替换单个字符串,像在实际中一样,该怎么办记事本。@VIKRAM:关于如何一个接一个地实现,请参见上面的一些快速想法。我并不是说这是最有效的,但对于小需求来说,它应该是不错的。i、 e.字符串是不可变的类型,因此,每次插入/删除/替换都会创建一个全新的字符串。这在“全部替换”中效果很好,但如果我们想像在实际记事本中一样,用findnext逐个替换单个字符串,该怎么办。@VIKRAM:请参阅上文,了解如何逐个实现的一些快速方法。我不是说这是最有效的,但对于小的需求,它应该是好的。i、 字符串是一种不可变的类型,因此每次插入/删除/替换都会创建一个全新的字符串。