【问题标题】:Use regex to find and modify try-catch blocks使用正则表达式查找和修改 try-catch 块
【发布时间】:2014-04-25 10:04:18
【问题描述】:

我有很多代码块,例如:

try
{
 ...
}
catch(Exception123 &e)
{
 ...
}

我想用这样的东西替换它们:

MY_MACRO(try
{
 ...
})
catch(Exception123 &e)
{
 ...
}

Exception123 是关键,只应识别捕获该特定类型的块。但是捕获的异常可能并不总是被称为e 或根本不存在。并且代码块的精确结构和格式并不总是相同的......我们可能有try {

为此在 Visual-Studio 查找替换中使用正则表达式是否可行?我不知道如何对主要的 try 块进行分组/识别。

【问题讨论】:

  • 你有嵌套的try/catch 出现吗?此外,这可能听起来很熟悉:您尝试过什么?
  • 我不知道 - MY_MACRO 实际上是在介绍他们。
  • 不确定Visual Studio 是否支持this(?is)try\s*\{.*?\}(?=\s*catch\s*\(\s*exception123[^)]*\)),但这是基本思想......

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


【解决方案1】:

好的。抱歉,我还没有看到你问题的第二部分:

我认为有您想要搜索的正则表达式:

(try[\r\n]+{[^\}]+[\r\n]+)(})([\r\n]+catch\(Exception123)

在替换字段中:

MY_MACRO($1$2)$3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多