perl - 当结果包含空字符串时在 perl 中拆分的奇怪行为

标签 perl split

这是我的 perl 5.16 代码

while(<>) {
  chomp;
  @data = split /a/, $_;
  print(join("b",@data),"\n");
}

如果我输入一个包含这个的文件:

paaaa
paaaaq

我明白了

p
pbbbbq

但我很期待

pbbbb
pbbbbq

为什么我对后一种行为的期望是错误的?

最佳答案

documented除非您指定第三个非零参数,否则将删除尾随的空值。

If LIMIT is omitted (or, equivalently, zero), then it is usually treated as if it were instead negative but with the exception that trailing empty fields are stripped (empty leading fields are always preserved)

你想要

split /a/, $_, -1;

关于perl - 当结果包含空字符串时在 perl 中拆分的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25903260/

相关文章:

sql - 使用拥有规则的多个分隔符(和 - )拆分 sql 中的数据

perl - 使用 Perl 拆分 float

perl - 如何将输出从一个文件句柄重定向到另一个文件句柄?

xml - 使用 XML::Twig 处理巨大文件 (>10 GB) 的性能问题

python - 在 Python 中根据空间拆分单个字典键和值

python - 如何通过 Pandas 中第一个和最后一个找到的模式将一列分成两列 (Python 3.x)

R按模式将一列拆分为多列

perl - 如何在 Windows 中通过 Perl 访问网络共享?

excel - 我可以使用 Perl 从 PDF 中提取表格吗?

string - 为什么 Split 在不同的字符串上表现不同?