gpt4 book ai didi

Perl 以最有效的方式在重复模式上拆分字符串?

转载 作者:行者123 更新时间:2023-12-04 17:24:18 24 4
gpt4 key购买 nike

我想拆分具有特定重复模式的字符串,例如:

$string = "GGGGG-SOMETHING-ELSE-GGG-LAST";


@array=(-SOMETHING-ELSE-,-LAST);

我作为 perl 新手的尝试
split(/G{2,}/,$string);

不幸的是,这导致只有 GG 的模式被拆分 - 而不是我希望产生 2 个数组元素的贪婪的 GGGGG 或 GGG 模式。

最佳答案

不,这似乎(大部分)按预期工作。以下代码:

use strict;
use warnings;

$_="GGGGG-SOMETHING-ELSE-GGG-LAST";
my @a=split(/G{2,}/,$_);
print join(",",@a) . "\n";

产生输出:
,-SOMETHING-ELSE-,-LAST

问题是第一个元素是空字符串。因此,要解决此问题,您可以执行以下操作:
use strict;
use warnings;

$_="GGGGG-SOMETHING-ELSE-GGG-LAST";
my @a=grep{$_ ne ""}(split(/G{2,}/,$_));
print join(",",@a) . "\n";

这会产生你想要的:
-SOMETHING-ELSE-,-LAST

关于Perl 以最有效的方式在重复模式上拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010534/

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