Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Regex删除try&;抓住_C#_.net_Regex - Fatal编程技术网

C# Regex删除try&;抓住

C# Regex删除try&;抓住,c#,.net,regex,C#,.net,Regex,我已经试着学习过几次正则表达式,但从来没有真正做到过。我将非常感谢regex提供的帮助,以查找并替换以下内容: #Any code try { #Any code } catch (Exception ex) { throw new ExceptionHandler("", ExceptionType.UnexceptedException, ExceptionSeverity.Error, null, "", e

我已经试着学习过几次正则表达式,但从来没有真正做到过。我将非常感谢regex提供的帮助,以查找并替换以下内容:

    #Any code
    try
    {
        #Any code

    }
    catch (Exception ex)
    {
        throw new ExceptionHandler("", ExceptionType.UnexceptedException, ExceptionSeverity.Error, null, "", ex);
    }
最困难的部分是如何让标签和空格的变化发挥作用

它应该只匹配上面的代码,而不匹配其他代码。

您可以使用此代码:

try\s+\{(.*?)\s+\}\s+catch\s*\(.*?\)\s+\{\s+throw new ExceptionHandler\("", ExceptionType.UnexceptedException, ExceptionSeverity.Error, null, "", ex\);\s+\}
但是如果在另一个
try/catch
块中有一个
try/catch
块,它将失败。你可以试试


注意:在大规模替换之前保留备份。

您可以尝试以下正则表达式:

try\s*?\{\s*?(.+)\s*?\}\s*?catch\s+?\(\s*?Exception\s*?ex\s*?\)\s*?\{\s*?(.+)\s*?\}

为什么有了5k rep,你问了一个没有显示任何搜索努力的问题?你读过我的帖子吗?“我已经试着学习regex好几次了”。高代表性是否意味着我了解正则表达式?这不可能用正则表达式可靠地做到。如果你的正则表达式风格(你没有指定)支持递归,你可以得到一个快速而肮脏的解决方案,但是如果你的代码中有可能包含关键字、大括号或其他相关语法元素的注释或字符串,那么这很可能会在你面前爆炸。我们谈论的是什么样的环境?编辑如果是这样的话,哪一个?也许可以工作,但是在某个地方有一个备份,以防万一。谢谢,当使用带有“使用正则表达式”的快速查找工具时,它说它什么也找不到?@Banshee您确实检查了正则表达式选项,是吗?它是哪一个IDE?当我尝试Find all时,它找到了4个IDE,而这些IDE在try和catch之间根本没有任何代码。已将其设置为整个解决方案。嗯,我会检查它,我使用的是Visual Studio 2015。它适用于Sublime文本,但在VS2015中似乎失败了。我来看看女妖