【发布时间】:2021-04-26 09:36:48
【问题描述】:
我注意到 Perl 的 split 命令有一些奇怪的行为,尤其是在我希望结果数组包含空字符串 '' 的情况下,但实际上并没有。
例如,如果我在 string 的末尾(或开头)有一个分隔符,则生成的数组不会有一个空字符串 '' 作为最后一个(或第一个)元素。
例子:
@s = split(/x/, 'axb')
产生2个元素数组['a','b']
@s = split(/x/, 'axbx')
产生相同的数组
@s = split(/x/, 'axbxxxx')
产生相同的数组
但只要我把一些东西放在最后,所有这些空字符串都会作为元素出现:
@s = split(/x/, 'axbxxxxc')
产生一个6元素数组['a','b','','','','c']
如果分隔符在开头,则行为类似。
我希望分隔符之间、之前或之后的空文本总是在拆分中产生元素。谁能向我解释为什么拆分在 Perl 中的行为是这样的?我刚刚在 Python 中尝试了同样的事情,它按预期工作。
注意:Perl v5.8
【问题讨论】:
标签: perl