下面的字符串将被解析。

ford mustang,10,blue~~?bugatti veyron,13,black

我想换~~?带着马车返回

用\n替换只会增加字符串"\n"

如何做到这一点呢?


当前回答

确保在“查找和替换”对话框中选择了“使用:正则表达式”:

注意,对于Visual Studio 2010,这在Visual Studio Productivity Power Tools的Quick Find扩展中不起作用(截至2011年7月更新);相反,你需要使用完整的查找和替换对话框(使用Ctrl+Shift+H,或Edit—>查找和替换—>替换文件),并将范围更改为当前文档。

其他回答

您也可以尝试在“替换”框中选中“使用正则表达式”框中的\x0d\x0a,使用Visual Studio查找/替换来获得回车+换行。 使用\n(换行)与使用\x0a相同

只是一个小小的警告…很多环境使用或需要“\r\n”,而不仅仅是“\n”。我遇到了一个问题,Visual Studio不匹配我的正则表达式字符串在行的末尾,因为我离开了“\r\n”的“\r”,所以我的字符串不能匹配一个缺失的不可见字符。

因此,如果您正在进行查找或替换,请考虑“\r”。

有关“\r”和“\n”的更多详细信息,请参见:https://stackoverflow.com/a/3451192/4427457

如果你想在使用正则表达式时避免在搜索和替换字符串中转义特殊字符的麻烦,请执行以下步骤:

搜索原始字符串,并将其替换为"UniqueString42",关闭正则表达式。 搜索“UniqueString42”,并将其替换为“UniqueString42\nUniqueString1337”,带有正则表达式 搜索“UniqueString42”并将其替换为替换的第一行(通常是原始字符串),并关闭正则表达式。 搜索“UniqueString42”并将其替换为替换的第二行,关闭正则表达式。

请注意,即使您想为第一次搜索和替换手动挑选匹配项,也可以安全地使用“替换全部”来完成最后三个步骤。

例子

例如,如果你想替换这个:

public IFoo SomeField { get { return this.SomeField; } }

与:

public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }

你可以做以下替换:

public IFoo SomeField {get{返回this.SomeField;}}→XOXOXOXO (regex off)。 XOXOXOXO→xoxoxo \nHUHUHUHU(正则表达式上)。 XOXOXOXO→public IFoo Foo {get{返回this.MyFoo;}}(正则表达式关闭)。 HUHUHUHU→公共IFoo吧{get{返回this.MyBar;}}(正则表达式关闭)。

你可以在Visual Studio宏中使用多行搜索和替换,它为任务提供了很好的GUI。

确保在“查找和替换”对话框中选择了“使用:正则表达式”:

注意,对于Visual Studio 2010,这在Visual Studio Productivity Power Tools的Quick Find扩展中不起作用(截至2011年7月更新);相反,你需要使用完整的查找和替换对话框(使用Ctrl+Shift+H,或Edit—>查找和替换—>替换文件),并将范围更改为当前文档。