Ruby: 不删除分隔符的字符串拆分

4
我需要将一个字符串拆分而不删除分隔符。是否有一种简单又“面向Ruby”的方法来做到这一点?
例如,给定如下字符串:
str = "(This is (a test))"

what I need is this:

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

我尝试使用字符串的分割方法,使用括号"("")"作为分隔符,但是返回的数组中它们被去掉了。请提供一些建议,谢谢。

你原始字符串中的空格怎么了?它们在字符串数组中不存在。 - Andrew Marshall
我希望将它们从数组中移除。 - kwadr4tic
2
这看起来更像是一个令牌解析问题... - DGM
是的:我正在尝试以类似Lisp的方式在二叉树中获取字符串,并将单词保存在叶子节点中。为了做到这一点(不确定是否最佳方法),我需要解决这个问题。 - kwadr4tic
1个回答

8
也许是这样的:

也许是这样的:

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

这个正则表达式将忽略所有其他字符。这是你想要的吗? - Michael Slade
1
好的,但稍微更清晰一些是:/ [()] | \ w + / - pguardiario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接