所以我想用我们的unicode端口用_T(...)包围C ++源代码中的所有字符串文字。
This问题回答了我如何搜索字符串文字,但有没有办法用_T()包围匹配的文本而不是用其他东西替换?
我打算一次一个字符串,而不是一次完成,但是要避免输入或者使用Visual Assist自己的“Surround With”每个字符串。
答案 0 :(得分:2)
Jochen Kalmbach的回答可能适用于旧版本的Visual Studio,但它在Visual Studio 2013中对我没有用。但是,查找/替换输入右侧的小型RegEx快捷按钮盒子有很多帮助:
在“查找”中,选择":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