我注意到Perl的split命令有些奇怪的行爲,尤其是在我期望得到的數組包含空字符串''的情況下,但實際上並沒有。例如,如果在字符串的結尾(或開頭)有一個分隔符,則結果數組沒有作爲最後一個(或第一個)元素的空字符串「s」。在分隔符之前/之後用空文本分割Perl
實施例:
@s = split(/x/, 'axb')
產生2元件陣列[ '一', 'B']
@s = split(/x/, 'axbx')
產生同一陣列
@s = split(/x/, 'axbxxxx')
產生同一陣列
但是,一旦我把一些東西噸結束時,所有那些空字符串不顯示爲元素:
@s = split(/x/, 'axbxxxxc')
產生6元件陣列[ 'A', 'B', '', '', '', 'C']
如果分隔符處於開始位置,則行爲相似。
我希望在分隔符之間,分隔符之前或分隔符後總是產生分隔符中的元素。任何人都可以向我解釋爲什麼Perl在Perl中的行爲如此嗎?我只是在Python中嘗試了同樣的事情,它按預期工作。
注:Perl的V5.8
從文檔引用時,請包含相關文檔的鏈接。這次我爲你添加了它。 – cjm 2010-09-14 18:48:49
哇,我覺得很愚蠢,不直接去看文檔。是的,你是對的,我在測試領先空間時一定犯了一些粗心的錯誤,只是再次嘗試並發現它們被保留下來。感謝關於放入-1的限制的說明,這幫助我解決了問題! – Roman 2010-09-14 19:02:12
@cjm謝謝;我保證我通常會這樣做! – Cascabel 2010-09-14 21:55:11