Regex 记事本++;正则表达式删除花括号之间的所有文本

Regex 记事本++;正则表达式删除花括号之间的所有文本,regex,notepad++,replace,Regex,Notepad++,Replace,我想删除{}之间的所有文本 结果应该是: function get_last_word($sentance){ $wordArr = explode(' ', $sentance); $last_word = trim($wordArr[count($wordArr) - 1]); runDebug( __FILE__, __FUNCTION__, __LINE__, "Sentance: $sentance. Last word:$last_word",4);

我想删除{}之间的所有文本 结果应该是:

function get_last_word($sentance){
    $wordArr = explode(' ', $sentance);
    $last_word = trim($wordArr[count($wordArr) - 1]);
    runDebug( __FILE__, __FUNCTION__, __LINE__, "Sentance: $sentance. Last word:$last_word",4);
    return $last_word;
}
我试过了

function get_last_word($sentance){}
只有当花括号在同一行时,它才起作用

{+.*}

(?新版记事本++支持多行匹配(我现在使用的是6.1.3)

在“查找/替换”对话框的“正则表达式”单选按钮旁边,有一个名为“.matches newline”的复选框,表示多行匹配

然后,使用
\{.*?\}
(这是一个不灵活的匹配)来实现您想要的

请注意,它与大括号不匹配

(?<=\{)[^}]+(?=\})
我会给你

foo {
  bar {
    blabalbla
  }
  xxx {
    yyy
  }
}

(我相信关于正则表达式中的大括号匹配还有其他问题,你可以看看,尽管我想知道它们在记事本++中是否有效)

当你反复地用
{[^{}]+\}
替换
{{}
时,你应该没事了


您使用的是什么版本?我使用的是np++6.1.4,使用原始帖子中的精确文本进行了检查。多行匹配是主要问题,升级到最新版本问题已解决谢谢:)谢谢@Ω超级。这个表情对我帮助很大。即使我从来没有完全理解它的意思。@Bob-为了更好地理解,我在我的答案中添加了可视化。它说的是:将
{
,后面跟一个或多个字符,然后是
{
}
,后面跟
}
,替换为
{}
,这对我来说更有意义。我曾尝试学习一点正则表达式,但从未以这种方式使用它们。这个解释很有启发性。再次感谢。
foo {}
  xxx {
    yyy
  }
}