Perl删除与正则表达式匹配的多行

奥列格·布汉佐夫(Oleg Bukhantsov)

我有一个看起来像这样的文件:

*
TEST CASE1,
$ some text unque633
PLACEMENT 123
*
TEST CASE2,
$ some text unque759
PLACEMENT 321
*
TEST CASE3,
$ some text unque966
PLACEMENT 856
*

我想删除与正则表达式匹配的多行。例如,需要删除从开始TEST CASE2直到行以开始*如何在perl脚本中完成此操作。另外,TEST CASE2如果我仅知道,我将如何编辑文本unque759非常感激。

北极熊

通过以下算法可以轻松实现所需目标:将所有数据读入变量,将下一个“ *”之前的块“ TEST CASE2 .....”替换为空,输出结果

use strict;
use warnings;
use feature 'say';

my $data = do { local $/; <DATA> };     # read all data at once

$data =~ s/TEST CASE2[^*]*//s;          # substitute requested block with nothing

say $data;

__DATA__
*
TEST CASE1,
$ some text
PLACEMENT 123
*
TEST CASE2,
$ some text
PLACEMENT 321
*
TEST CASE3,
$ some text
PLACEMENT 856
*

输出量

*
TEST CASE1,
$ some text
PLACEMENT 123
*
*
TEST CASE3,
$ some text
PLACEMENT 856
*

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TCL / Expect正则表达式匹配多行输出

来自分类Dev

Perl正则表达式问题,内容为多行

来自分类Dev

多行文件的perl正则表达式

来自分类Dev

Python中的正则表达式-多行匹配

来自分类Dev

使用Perl正则表达式删除多行C样式/ *注释* /

来自分类Dev

正则表达式匹配多行

来自分类Dev

在Perl正则表达式中匹配多行中的单词

来自分类Dev

javascript正则表达式以匹配多行

来自分类Dev

匹配多行并在Perl正则表达式中打印

来自分类Dev

正则表达式通过多行匹配

来自分类Dev

正则表达式匹配多行括号中的文本

来自分类Dev

Perl正则表达式:多行匹配并以给定格式输出:完全修订

来自分类Dev

Vim正则表达式-如何反转匹配多行的正则表达式?

来自分类Dev

正则表达式,用于匹配多行文字

来自分类Dev

Javascript-多行匹配正则表达式

来自分类Dev

MariaDB / Mediawiki中的多行正则表达式匹配

来自分类Dev

不能匹配多行正则表达式

来自分类Dev

在PowerShell中进行多行正则表达式匹配

来自分类Dev

改进工作的正则表达式以匹配多行

来自分类Dev

awk:不显示匹配的正则表达式(多行)

来自分类Dev

用于多行文件的perl正则表达式

来自分类Dev

在多行上匹配一个Perl正则表达式

来自分类Dev

多行正则表达式模式匹配

来自分类Dev

正则表达式多行匹配

来自分类Dev

在多行上使用Perl正则表达式

来自分类Dev

多行正则表达式(grep,sed,awk,perl)

来自分类Dev

从CLI替换Perl多行正则表达式

来自分类Dev

Vim正则表达式-如何反转匹配多行的正则表达式?

来自分类Dev

Perl正则表达式多行匹配,不带点