查找和替换-添加回车符或换行符

下面的字符串将被解析。

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

我想用carriage return替换~~?

替换为\n只是增加了字符串"\n"

如何做到这一点呢?

166181 次浏览

如果你设置了Use regular expressions标志,那么\n字符将被翻译。但是请记住,您必须修改您的搜索词,使其对regexp友好。在你的情况下,它应该像这样转义\~\~\?

确保在Find and Replace对话框中选择了Use: Regular expressions:

Find/Replace Dialog Use Regular expressions .

注意,对于Visual Studio 2010,这在Visual Studio生产力工具' Quick Find扩展中不起作用(截至2011年7月更新);相反,你需要使用完整的Find and Replace对话框(使用Ctrl+Shift+HEdit --> Find and Replace --> Replace in Files),并将作用域更改为Current Document

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

enter image description here

你也可以在“Replace with”框中尝试\x0d\x0a,并选中“Use regular Expression”框,使用Visual Studio Find/Replace获得回车+换行。 使用\n(换行)与\x0a

相同

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

  1. 搜索原始字符串,用正则表达式将其替换为"UniqueString42"。
  2. 搜索"UniqueString42"并将其替换为"UniqueString42\nUniqueString1337",使用正则表达式
  3. 搜索"UniqueString42"并用正则表达式将其替换为替换的第一行(通常是原始字符串)。
  4. 搜索"UniqueString42"并用正则表达式将其替换为替换的第二行。

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

例子

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

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

与:

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

你可以做以下替换:

  1. public IFoo SomeField { get { return this.SomeField; } }XOXOXOXO (regex )。
  2. XOXOXOXOXOXOXOXO\nHUHUHUHU (regex )。
  3. XOXOXOXOpublic IFoo Foo { get { return this.MyFoo; } } (regex )。
  4. HUHUHUHUpublic IFoo Bar { get { return this.MyBar; } } (regex )。

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

因此,如果您正在进行查找或替换,请考虑使用"\ "。

想了解更多关于"\ "和“;\n&”,参见:https://stackoverflow.com/a/3451192/4427457