我有大量代码实例,例如:
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/