首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拆分字符串并追加第二个和第一个元素

拆分字符串并追加第二个和第一个元素
EN

Stack Overflow用户
提问于 2022-11-22 08:50:17
回答 2查看 40关注 0票数 2

我对perl脚本很陌生。试过以下代码

代码语言:javascript
运行
复制
#!/usr/bin/perl -w
our $sep = "-";

open my $data, $ARGV[0] or die "Can't open $ARGV[0] for reading: $!";
while( my $line = <$data> )
{
        $line =~ s/]:/\n]:/g;
        my @spl = split(', ', $line);
        $hello = $spl[2].'-'.$spl[1];
        print $hello;
        print "\n";
}

我的样本输入

代码语言:javascript
运行
复制
, 1234, task]: 1122

我目前的输出

代码语言:javascript
运行
复制
task
]: 1122
-1234

我的期望样本输出

代码语言:javascript
运行
复制
task-1234]: 1122
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-22 09:40:30

所期望的结果可以在许多方面实现。在这种特殊情况下,拆分可能不是最好的方法。

输入样本数据格式非常简单,可以用regex进行处理。

代码语言:javascript
运行
复制
use strict;
use warnings;
use feature 'say';

my($fname,$regex);

$regex = qr/^, (\d+), (.+?)]: (\d+)$/;

while( <DATA> )
{
    next if /^\s*$/;
    my @data = $_ =~ /$regex/;
    say "$data[1]-$data[0]\]: $data[2]";
}

exit 0;

__DATA__
, 1234, task]: 1122

输出

代码语言:javascript
运行
复制
task-1234]: 1122

注意:将<DATA>替换为<>,以处理命令行上指定的文件

下面的代码示例利用拆分实现了相同的结果

代码语言:javascript
运行
复制
use strict;
use warnings;
use feature 'say';

while( <DATA> )
{
    next if /^\s*$/;
    my @data = split(/[, \]:]+/, $_);
    say "$data[2]-$data[1]\]: $data[3]";
}

exit 0;

__DATA__
, 1234, task]: 1122

输出

代码语言:javascript
运行
复制
task-1234]: 1122

您可以通过Google Perl书架开始学习Perl,尽管书籍已经过时了,它们仍然很有价值。

请看下面的免费书籍,以获得最新的编程风格

  • 现代Perl

互联网上有大量免费的perl编程书籍

票数 2
EN

Stack Overflow用户

发布于 2022-11-22 09:28:18

我能解决它,但逻辑太糟糕了。

代码语言:javascript
运行
复制
open my $stack, $ARGV[0] or die "Can't open $ARGV[0] for reading: $!";
while( my $line = <$stack> )
{
        my @spl = split(']:', $line);
        my @spl1 = split(', ', $spl[0]);
        $line = $spl1[2].'-'.$spl1[1]."]:".$spl[1];
        print $line;
        print "\n";
}

预期产出

代码语言:javascript
运行
复制
task-1234]: 1122
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74529783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档