2012-04-06 84 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