我的原始文本文件就像
>
item1
>
item{2}
>
item3
>
item4}
我想删除/匹配包含{或}的所有项目。在上面的示例中,它将删除第2项和第4项。结果将是:
>
item1
>
item3
我想做贪婪的比赛,所以它匹配最小的块。它还必须匹配多行。像:
(?s)>(.+?)[\{|\}](.+?)>
但它对我不起作用。
答案 0 :(得分:1)
这个正则表达式正是你所要求的。它假定输入的确切类型,在包含{
或}
的那一行上方没有其他内容。
>\n.*?[{}]+.*?$
如果该行可以包含文本,则可以使用以下文本。
>.*\n.*?[{}]+.*?$
这些替换都会留下空白。为避免这种情况,请在正则表达式的前面或后面添加\n
,具体取决于文档的适用范围。
答案 1 :(得分:0)
试试这个:
\n>\s(.*)(\{|\})