Visual Studio'查找和环绕'代替'查找和替换'

时间:2013-07-11 11:09:58

标签: visual-studio visual-c++ replace

所以我想用我们的unicode端口用_T(...)包围C ++源代码中的所有字符串文字。

This问题回答了我如何搜索字符串文字,但有没有办法用_T()包围匹配的文本而不是用其他东西替换?

我打算一次一个字符串,而不是一次完成,但是要避免输入或者使用Visual Assist自己的“Surround With”每个字符串。

2 个答案:

答案 0 :(得分:2)

Jochen Kalmbach的回答可能适用于旧版本的Visual Studio,但它在Visual Studio 2013中对我没有用。但是,查找/替换输入右侧的小型RegEx快捷按钮盒子有很多帮助:

RegEx shortcut buttons are helpful for non-RegEx experts

在“查找”中,选择":q引号字符串"选项。 在替换中,选择" $ 1替换由捕获的组编号1和#34;匹配的子字符串,然后用_T()包围$ 1。

最终输出

查找:     (?(\&#34 + \")|('?+'))

替换:     _T($ 1)

请注意,$ 1表示包含在最外面括号中的RegEx表达式组。

这是另一个例子:

<强>要求

查找

Converter.toCustomObject($find("Anything"));

替换(不同的Converter方法并在$ find()参数后添加参数):

Converter.toDifferentObject($find("Anything"), true);

<强>解决方案

查找(在查找选项中使用RegEx):

Converter\.toCustomObject\((\$find\(.*)\);

替换:

Converter.toDifferentObject($1, true);

请注意,替换值不需要转义特殊字符,但您可以应用一些RegEx,例如要在输出后添加换行符,可以将其用于替换:

Converter.toDifferentObject($1, true);\r\n

答案 1 :(得分:0)

转到:编辑|查找和替换... |快速替换.. 然后输入:

Find: :q
Replace with : _T(\0)
Use: Regular Expressions