notepad ++正则表达式删除大括号之间的所有文本

时间:2012-07-27 00:03:28

标签: 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);
    return $last_word;
}

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

function get_last_word($sentance){}

我试过了

{+.*}

并且只有当大括号在同一行时才能工作

2 个答案:

答案 0 :(得分:10)

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

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

然后,使用\{.*?\}(这是一个不合适的匹配)来实现你想要的。

请注意它与您的大括号不符。例如

foo {
  bar {
    blabalbla
  }
  xxx {
    yyy
  }
}

会给你

foo {}
  xxx {
    yyy
  }
}

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

答案 1 :(得分:1)

尝试

(?<=\{)[^}]+(?=\})

这将匹配{和}

之间的任何内容