2012-04-06 83 views
4

我需要分割一個字符串而不移除分隔符。是否有一個簡單的和「Ruby嚮導」的方式來做到這一點?Ruby:分割一個字符串而不移除分隔符

例如,給定這樣的字符串:

str = "(This is (a test))" 

我需要的是這樣的:

["(", "This", "is", "(", "a", "test", ")", ")"] 

我使用字符串分割法,用括號"("")"作爲分隔符嘗試,但是然後我將它們從返回的數組中移除。任何建議都會有幫助。

+0

發生了什麼事在你原來的字符串空間?它們不存在於字符串數組中。 – 2012-04-06 15:18:39

+0

我希望將它們從陣列中移除。 – wazabit 2012-04-06 15:20:57

+2

這看起來更像是一個令牌解析問題... – DGM 2012-04-06 15:20:59

回答

8

也許是這樣的:

str.scan(/\(|\)|\w+/) 
+0

工作得很好。謝謝! – wazabit 2012-04-06 15:27:19

+0

此正則表達式將忽略所有其他字符。那是你要的嗎? – 2012-04-06 15:34:17

+1

良好,但稍微清潔一點是:/ [()] | \ w + / – pguardiario 2012-04-06 17:17:56