regex - 使用正则表达式查找和替换来重构 Visual C++ 中的方法调用

标签 regex visual-c++ visual-studio-2005

我有大量代码实例,例如:

throw CODBCException("Error!",GetHENV(),GetHDBC());
throw CODBCException(Msg,GetHENV(),GetHDBC());

我想用实用方法替换每个: throwException("Error!")throwException(Msg)

这是 Visual C++ 搜索/替换可以使用正则表达式执行的操作吗?我以前从未使用过此功能,而且我也不太了解正则表达式,但它会非常简洁。

我只对第一个逗号后面的内容感兴趣,例如 throw CODBCException("Error!", 所以我真的正在寻找用 throwException(X) 替换 throw CODBCException(X,...) >

最佳答案

这取决于您希望正则表达式的通用程度(例如,匹配必须与您给出的字符串示例有多接近),但您将其用于查找选项:

throw[ \t]*CODBCException\({.*},[ \t]*GetHENV\(\),[ \t]*GetHDBC\(\)\);

然后使用它作为替换选项:

throwException(\1);

一般情况下,可以使用花括号来指定要替换的反向引用,并使用“\1”等来替换它们。

编辑:根据更新的问题描述,应将以下内容用于查找选项:

throw[ \t]*CODBCException\({(".*")|([^,]+)},.*\);

关于regex - 使用正则表达式查找和替换来重构 Visual C++ 中的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12841107/

相关文章:

javascript - 我想检查 yyyy-mm-dd hh :mm (regular expression)

ruby - 转换 HTML 文档中的 URL?

c++ - 使用 Windows 套接字进行蓝牙编程 - 范围内的设备

visual-studio-2005 - VS2005选项生成方法 stub 不起作用

python - 从文本文件 Python 中提取括号之间文本的出现

sql - 从字符串/文本 SQL Server 中提取 float

c++ - 如何使用 MPIR 库计算 GCD

c++ - Qt Creator 程序因使用 taglib 而崩溃

c# - 从 .Net 中的 SAS 数据源读取数据

c# - 如何在 2 个 Visual C# 应用程序之间进行 TCP-IP 通信?