gpt4 book ai didi

regex - 从 perl regexp 中清除只读变量

转载 作者:行者123 更新时间:2023-12-02 21:23:50 26 4
gpt4 key购买 nike

尝试清除 Perl 正则表达式中的只读变量时遇到一些问题。这是示例代码。

while (<$input>) {
$cap = "";
$_ =~ s/(.*)"(hello)(.*)"(.*)/$1$2$4/;
$cap = $2;
print "$_\n";
print "captured $cap\n";
}

这很好,直到它正在读取的行没有 hello。由于某种原因,即使正则表达式没有匹配任何内容,$2 仍然保留为“hello”。我尝试使用

$2 = "";

但是我得到了

Modification of a read-only value attempted

关于如何清除变量有什么建议吗?

最佳答案

不是清除变量,而是检查匹配是否成功:

while (<$input>) {
$cap = "";
if ($_ =~ s/(.*)"(hello)(.*)"(.*)/$1$2$4/) {
$cap = $2;
}
print "$_\n";
print "captured $cap\n";
}

关于regex - 从 perl regexp 中清除只读变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25974936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com