【问题标题】:Why does split not return anything?为什么 split 不返回任何东西?
【发布时间】:2013-01-10 11:26:02
【问题描述】:

我试图让 Perl split 工作超过 2 小时。我没有看到错误。也许其他一些眼睛可以看到它并看到问题。我敢肯定这是一个愚蠢的:

@versionsplit=split('.',"15.0.3");

print $versionsplit[0];
print $versionsplit[1];
print $versionsplit[2];

我只是得到一个空数组。知道为什么吗?

【问题讨论】:

    标签: perl split


    【解决方案1】:

    你需要:

    @versionsplit=split(/\./,"15.0.3");
    

    split 的第一个参数是正则表达式,而不是字符串。 . 是正则表达式符号,意思是“匹配任何字符”。因此,您输入字符串中的所有字符都被视为分隔符,split 在它们之间找不到任何要返回的内容。

    【讨论】:

      【解决方案2】:

      .”代表任何字符。您需要对其进行转义,以便拆分功能将其识别为字段分隔符。 将您的线路更改为

      @versionsplit=split('\.',"15.0.3");
      

      【讨论】:

      • 我发现将split 的第一个参数放在匹配运算符 (//) 中会强化它被解释为正则表达式的事实。
      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 2022-01-15
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      相关资源
      最近更新 更多