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

Man*_*imo 174 replace carriage-return visual-studio

在以下字符串被解析的情况下.

ford mustang,10,blue~~?bugatti veyron,13,black
Run Code Online (Sandbox Code Playgroud)

我想~~?用一个替换carriage return

替换\n只是添加字符串"\n"

如何才能做到这一点?

Mar*_*tin 262

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

查找/替换对话框使用正则表达式

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

  • 使用查找文本右侧的"播放"按钮也很方便 (5认同)
  • 如果你试图匹配括号等特殊字符,当正则表达式打开时别忘了使用例如`\)` (3认同)
  • 需要在正则表达式中转义"?"字符,因为它表示前一个元素是可选的.因此,正确的"查找内容"文本是"~~ \?",问号由反斜杠转义.您给出的答案适用于示例文本,因为它会贪婪地找到第二个波形符并使用它,但是如果文本中任何地方也存在单个波形符,则它也将被不正确地替换为换行符. (2认同)

小智 28

您还可以尝试\x0d\x0a在"替换为"框中选中"使用正则表达式"复选框,以使用Visual Studio查找/替换来回车+换行.使用\n(换行)与.相同\x0a


det*_*zed 13

如果设置"使用正则表达式"标志,则将翻译\n.但请记住,您必须修改搜索词才能正常使用regexp.在你的情况下,它应该像这样"\〜\〜\?"进行转义 (没有引号).

  • '〜'不需要在Regex中进行转义.这是一个字面意思.这是不正确的. (3认同)

Suz*_*ron 10

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

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

请注意,即使您要为第一次搜索和替换手动匹配匹配,您也可以安全地使用"替换所有"进行最后三步.

例如,如果要替换此:

public IFoo SomeField { get { return this.SomeField; } }
Run Code Online (Sandbox Code Playgroud)

接着就,随即:

public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
Run Code Online (Sandbox Code Playgroud)

你会做以下替换:

  1. public IFoo SomeField { get { return this.SomeField; } }XOXOXOXO(正则表达式关闭).
  2. XOXOXOXOXOXOXOXO\nHUHUHUHU(正则表达式).
  3. XOXOXOXOpublic IFoo Foo { get { return this.MyFoo; } }(正则表达式关闭).
  4. HUHUHUHUpublic IFoo Bar { get { return this.MyBar; } }(正则表达式关闭).

  • 我的意思并不是那么糟糕.道歉,我忘了笑脸:D至于解决方案,不,我没有涉及VS. 但我发现支持正则表达式(记事本++等)的任何体面的外部编辑器都能很好地工作. (2认同)
  • UltraEdit是搜索替换的王者 - 在这里您只需标记这些行并开始搜索即可搜索换行符,换行符或其他内容. - 至于替换你simpy输入^ n代表\n,^ r代表\ r和^ t代表\ t - 如果只有VS2010会做同样的事情:-) (2认同)

Pet*_*cej 6

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

在此输入图像描述


Cry*_*ptc 5

只是一个小警告......很多环境使用或需要“\r\n”而不仅仅是“\n”。我遇到了 Visual Studio 与行尾的正则表达式字符串不匹配的问题,因为我遗漏了“\r\n”的“\r”,因此我的字符串无法与丢失的不可见字符匹配

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

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