Qt Creator search/replace 编辑时使用正则表达式:强制捕获为大写

Qt Creator search/replace with regexp while editing : forcing capture to uppercase

我想用 'Lowercaseword' 替换所有出现的 'XYZ_lowercaseword',即删除前缀并将新的首字母大写。

使用 Qt Creator 正则表达式,我可以轻松搜索匹配 'XYZ_something' 的 XYZ_([a-z]) 并捕获 'something' 的 's'。如何在强制将其变为大写的同时引用替换字段中捕获的组?这样应该就够了吧?

不幸的是,至少在 Qt Creator 3.6.1 之前,没有内置功能可以做到这一点。您必须使用外部工具或修改搜索代码才能添加该功能。

通过 QString::replace 提供了对捕获组的长期支持,即您可以在替换文本中引用捕获组。

要引用捕获组 n,请使用语法 \n,其中 n 是一个整数。例如。在您的情况下,您将引用捕获组 1,替换为 XYZ_。不幸的是,无法使用此语法更改大小写。

我不知道 Qt Creator,但我用 Perl 方言读过它,所以你可以试试这个

替换

XYZ_(.*)

\u

要在 QtCreator 中使用正则表达式组捕获,请使用高级搜索(control + shift + f)并打开使用正则表达式

搜索您的正则表达式,例如

XYZ_([a-z])([a-z])+

单击“搜索和替换”按钮

使用 \1 插入捕获的组(\2 用于组 2,等等)例如

</code></p> <p>替换</p> <p><code>XYZ_lowercaseword

lowercaseword

已在 QtCreator 3.6.1 中测试