2016-02-16 40 views
3

當我在字符串上使用split和正則表達式時,我得到以下輸出。與正則表達式組分割字符串

string = "12345678" 

string.split(/(..)/) 

=> ["", "12", "", "34", "", "56", "", "78"] 

爲什麼我從split方法中得到空字符串?我意識到使用scan方法會給我沒有空字符串,但我想知道爲什麼split給我空字符串。

+3

'string.scan(/../)' –

+3

@WiktorStribiżew它不是重複的。閱讀問題。 – sawa

+3

@WiktorStribiżew - 鏈接的問題解決了如何獲得我想要的結果。我想知道*爲什麼*它給了我空串。 – NateW

回答

4

至於最初的空字符串,這是因爲split的原始目的是將字符串分隔成帶分隔符的字段。它始終假設在分隔符之前有一個字段,即使它是空的。至於其他空串,這是因爲分隔符是相鄰的。