【问题标题】:Ruby: splitting a string without removing separatorsRuby:在不删除分隔符的情况下拆分字符串
【发布时间】:2012-04-06 15:12:42
【问题描述】:

我需要在不删除分隔符的情况下拆分字符串。有没有一种简单且“面向 Ruby”的方法来做到这一点?

例如,给定这样的字符串:

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

我需要的是这个:

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

我尝试对字符串使用 split 方法,使用括号 "("")" 作为分隔符,但随后我将它们从返回的数组中删除。任何建议都会有所帮助。

【问题讨论】:

  • 原始字符串中的空格发生了什么变化?它们不存在于字符串数组中。
  • 我希望将它们从阵列中移除。
  • 这看起来更像是一个令牌解析问题...
  • 是的:我试图弄清楚如何以类似 lisp 的方式在二叉树中获取字符串,并将单词保存在叶子中。为此(不确定是否是最好的方法)我需要解决这个问题。

标签: ruby string split


【解决方案1】:

可能是这样的:

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

【讨论】:

  • 工作得很好。谢谢!
  • 此正则表达式将忽略所有其他字符。这就是你想要的吗?
  • 好,但稍微干净一点是:/[()]|\w+/
猜你喜欢
  • 2013-05-10
  • 2019-01-21
  • 2020-04-09
  • 1970-01-01
  • 2017-05-29
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
相关资源
最近更新 更多