You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl脚本字符串分割拼接异常:实际输出与预期不符求助

问题解决

问题根源

  1. 你添加的$line =~ s/]:/\n]:/g会把]:替换成换行加]:,直接破坏了原字符串的连续性,导致分割后的$spl[2]包含换行符,输出时自然会换行。
  2. 仅用, 分割字符串,没有保留原字符串末尾的]: 1122部分,拼接逻辑也没覆盖这部分内容。

修正后的代码

#!/usr/bin/perl -w

open my $data, $ARGV[0] or die "Can't open $ARGV[0] for reading: $!";
while( my $line = <$data> )
{
    # 用正则匹配提取需要的部分并重组
    if ($line =~ /, (\d+), (\w+)](.*)/) {
        print "$2-$1]$3\n";
    }
}

代码说明

  • 移除了破坏字符串结构的换行替换操作。
  • 使用正则表达式直接捕获数字(1234)、任务名(task)以及后面的剩余内容(: 1122),然后按任务名-数字]:剩余内容的格式重组输出,完全匹配你的期望结果。

测试验证

输入:

, 1234, task]: 1122

输出:

task-1234]: 1122

内容的提问来源于stack exchange,提问作者Jaff_NL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:50:23