3
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){}

我试过了

{+.*}

并且仅当大括号在同一行时才有效

4

3 回答 3

12

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

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

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

请注意,它与您的大括号不匹配。例如

foo {
  bar {
    blabalbla
  }
  xxx {
    yyy
  }
}

会给你

foo {}
  xxx {
    yyy
  }
}

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

于 2012-07-27T02:28:53.677 回答
6

You should be fine when you just replace \{[^{}]+\} with {}, repeatedly...

Regular expression visualization

于 2012-07-27T14:40:09.973 回答
2

尝试

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

这将匹配介于 { 和 } 之间的任何内容

于 2012-07-27T00:10:11.753 回答