Visual Studio 2022正则替换特定if代码模式失效求助
解决Visual Studio 2022正则替换空值判断失效问题
开启正则模式:打开查找替换窗口(Ctrl+Shift+H),点击工具栏上的
.*图标,确保启用正则表达式匹配模式,而非通配符模式。使用适配.NET正则引擎的匹配表达式:
VS内置的是.NET正则引擎,和regex101默认的PCRE语法有差异,针对常见的空判断写法,可用以下正则匹配:if\s*\(\s*([\w.]+)\s*==\s*null\s*\)\s*\{\s*throw\s+new\s+ArgumentNullException\s*\(\s*["']?\1["']?\s*\);\s*\}说明:
\s*匹配任意空白字符(空格、换行、制表符),兼容不同缩进和换行格式([\w.]+)捕获变量名(支持this.Var这类成员访问)["']?匹配可选的字符串引号(适配带变量名参数的ArgumentNullException写法)\1引用捕获的变量名,确保判断变量和异常参数一致
替换表达式:
在替换框中输入:ArgumentNullException.ThrowIfNull($1);注意VS替换时用
$1引用分组,而非regex101里的\1。特殊场景适配:
若throw语句存在多行换行,需勾选查找替换窗口中正则表达式下拉菜单里的匹配换行选项,确保跨多行代码能被正确匹配。
内容的提问来源于stack exchange,提问作者Rumplin
相关产品推荐
相关产品推荐

