gpt4 book ai didi

regex - perl 中的无限循环

转载 作者:行者123 更新时间:2023-12-04 02:44:14 25 4
gpt4 key购买 nike

有没有办法在没有无限循环的情况下做到这一点?

while((my $var) = $string =~ /regexline(.+?)end/g) {
print $var;
}

这会导致无限循环,可能是因为直接从 while 中的正则表达式分配 var 每次都返回“true”?

我知道我可以这样做:
while($string =~ /regexline(.+?)end/g) {
my $var = $1;
print $var;
}

但我希望我能保存一条线。是否有我可以使用的正则表达式修饰符或类似的东西?

(另外,这个符号/技巧实际上叫什么,如果我想搜索它:
(my $var) = $string =~ /regex/;

谢谢!!

最佳答案

Is there a way to do this without getting an infinite loop?



是的。使用 foreach() 而不是 while() 循环:
foreach my $var ($string =~ /regexline(.+?)end/g) {

what is this notation/trick actually called, if I want to search for it



它在列表上下文中称为匹配。它在“perldoc perlop”中有描述:

The g modifier specifies global pattern matching--that is, matching as many times as possible within the string. How it behaves depends on the context. In list context ...

关于regex - perl 中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7374107/

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