Intellij 结构搜索和替换所有形式的 if 语句
Intellij structural search and replace for all forms of if statements
我写了这样的搜索:
preparedStatement = connect.prepareStatement($sql$);
$code1$;
$resultSet$ = preparedStatement.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
}
然后像这样替换:
try (PreparedStatement preparedStatement = connect.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = preparedStatement.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}
当我 运行 时,它会找到具有 if { foo } else { bar}
结构的代码。我对此很好,但问题是如果我更换它会删除 else { bar }
部分。我希望这个 search/replace 能够明智地处理带有 else、多个 else-if 或这些的任何混合的 if 语句。有没有办法通过一次搜索和替换来做到这一点?
我尝试将搜索中的 if
更改为具有 else 并解决了问题,但随后它跳过了只有 if 而没有 else 的代码。
目前无法使用单个结构搜索和替换来执行此操作。但是你可以用两个来做。您已经有了找到 if
s 和 else
工作的模式。要查找没有 else
分支的 if
s,您可以使用这样的模式:
PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$);
$code1$;
$resultSet$ = $preparedStatement$.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
} else $nothing$
$nothing$
变量的约束(在 编辑变量 按钮下)是:
min/max 次出现:0, 0
并使用替换模式省略 else
分支:
try (PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = $preparedStatement$.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}
我写了这样的搜索:
preparedStatement = connect.prepareStatement($sql$);
$code1$;
$resultSet$ = preparedStatement.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
}
然后像这样替换:
try (PreparedStatement preparedStatement = connect.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = preparedStatement.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}
当我 运行 时,它会找到具有 if { foo } else { bar}
结构的代码。我对此很好,但问题是如果我更换它会删除 else { bar }
部分。我希望这个 search/replace 能够明智地处理带有 else、多个 else-if 或这些的任何混合的 if 语句。有没有办法通过一次搜索和替换来做到这一点?
我尝试将搜索中的 if
更改为具有 else 并解决了问题,但随后它跳过了只有 if 而没有 else 的代码。
目前无法使用单个结构搜索和替换来执行此操作。但是你可以用两个来做。您已经有了找到 if
s 和 else
工作的模式。要查找没有 else
分支的 if
s,您可以使用这样的模式:
PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$);
$code1$;
$resultSet$ = $preparedStatement$.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
} else $nothing$
$nothing$
变量的约束(在 编辑变量 按钮下)是:
min/max 次出现:0, 0
并使用替换模式省略 else
分支:
try (PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = $preparedStatement$.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}