notepad++正则表达式删除大括号之间的所有文本
Posted
技术标签:
【中文标题】notepad++正则表达式删除大括号之间的所有文本【英文标题】:notepad++ regular expression remove all text between curly brackets 【发布时间】:2012-07-25 15:45:48 【问题描述】: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)
我试过了
+.*
只有当大括号在同一行时才有效
【问题讨论】:
【参考方案1】:试试
(?<=\)[^]+(?=\)
这将匹配 和 之间的任何内容
【讨论】:
你用的是什么版本?我正在使用 np++ 6.1.4,用原始帖子中的确切文本进行了检查。【参考方案2】:Notepad++新版本支持多行匹配(我现在用的是6.1.3)
在“查找/替换”对话框中,在“正则表达式”单选按钮旁边,有一个名为“.matches newline”的复选框,表示多行匹配。
然后,使用\.*?\
(这是一个不贪婪的匹配)来实现你想要的。
请注意它与您的大括号不匹配。例如
foo
bar
blabalbla
xxx
yyy
会给你
foo
xxx
yyy
(我相信SO中还有其他关于正则表达式中大括号匹配的问题,你可以看看,虽然我想知道它们是否可以在notepad++中工作)
【讨论】:
多行匹配是主要问题,升级到最新版本问题解决了谢谢:)【参考方案3】:只要将\[^]+\
替换为 就可以了,重复...
【讨论】:
谢谢! @Ωmega。这个表达对我帮助很大。尽管我从未完全理解其中的含义。 @Bob - 为了更好地理解,我在我的答案中添加了可视化。它的意思是:替换
,后接一个或多个其他字符,然后是
或
,后接
,再替换为
...
这对我来说更有意义。我曾尝试研究一点正则表达式,但从未以这种方式使用它们。解释非常有启发性。再次感谢。以上是关于notepad++正则表达式删除大括号之间的所有文本的主要内容,如果未能解决你的问题,请参考以下文章