Sublime Text 2:正则表达式删除包含某些字符的块

时间:2013-05-03 15:53:55

标签: regex sublimetext2

我的原始文本文件就像

>
 item1
>
item{2}
>
item3
>
item4}

我想删除/匹配包含{或}的所有项目。在上面的示例中,它将删除第2项和第4项。结果将是:

>
 item1
>
item3

我想做贪婪的比赛,所以它匹配最小的块。它还必须匹配多行。像:

(?s)>(.+?)[\{|\}](.+?)>

但它对我不起作用。

2 个答案:

答案 0 :(得分:1)

这个正则表达式正是你所要求的。它假定输入的确切类型,在包含{}的那一行上方没有其他内容。

>\n.*?[{}]+.*?$

如果该行可以包含文本,则可以使用以下文本。

>.*\n.*?[{}]+.*?$

这些替换都会留下空白。为避免这种情况,请在正则表达式的前面或后面添加\n,具体取决于文档的适用范围。

答案 1 :(得分:0)

试试这个:

\n>\s(.*)(\{|\})