我有这个字符串:
a = "hy what are you doing [Zoho Reports] will you like? [Zoho Books] reply"我想把它分开,结果是这样的:
hy
what
are
you
doing
[Zoho Reports]
will
you
like?
[Zoho Books]
reply我如何才能循环该字符串来实现这些结果?我目前正在这样做:
a.split("")但是它将"[Zoho Reports]"分成了"[Zoho"和"Reports]",这是我不想要的。
发布于 2012-10-08 02:26:30
不是很漂亮,但可以完成工作:
a.scan(/(\S+)|(\[.+?\])/).map(&:compact).flatten后来我注意到,我使用的组根本不是必需的,没有它们,解决方案可以简化为:
a.scan(/\S+|\[.+?\]/)发布于 2012-10-08 02:35:06
在这种情况下,您应该使用scan而不是split,因为它更容易表征您想要的东西,而不是您想要丢弃的东西。
与Bozhidar的答案类似,但您不需要复杂化。
a.scan(/\[.*?\]|\S+/)https://stackoverflow.com/questions/12771387
复制相似问题