如何匹配模式并从多行字符串中删除整行
Posted
技术标签:
【中文标题】如何匹配模式并从多行字符串中删除整行【英文标题】:How do I match pattern and delete the whole line from multiple lines string 【发布时间】:2021-11-15 13:24:27 【问题描述】:我有这个多行字符串
IP 5002
<IP 5002
<
abcbbdbdbd
abcbbdbdbd
abcbbdbdbd
abcbbdbdbd
;
我正在尝试匹配“ 我只删除了 谁能帮忙,搜索结果主要涉及通过不从文件中读取行并写入新文件来删除行。我试图从一个字符串中做到这一点。 谢谢IP 5002
<
abcbbdbdbd
abcbbdbdbd
abcbbdbdbd
abcbbdbdbd
;
my $str = "sdasdasd
<IP 5002
<
dadas
dasdasd
dasdsada
";
$str =~ s/<IP.*//;
print "\n" . $str . "\n";
【问题讨论】:
【参考方案1】:你可以删除换行符:
$str =~ s/<IP.*\n//;
如果你想避免贪婪匹配:
$str =~ s/<IP.*?\n//;
【讨论】:
如果我们提到贪婪(为什么不提到),那么我还要声明.
与没有修饰符 /s
的换行符不匹配(没有它,贪婪在这里无关紧要) .以上是关于如何匹配模式并从多行字符串中删除整行的主要内容,如果未能解决你的问题,请参考以下文章