如果用户提交如下字符串:
我的客厅平面图,客厅设计图,这很酷!
我想要以下数组/字符串:

text = "My living room plans"
tags = ['plans', 'livingroom', 'design']
people = ['cbmeeks', 'moe', 'larry']
description = "this is cool!"

提交的每个字符串都将以text开始。不,@-等等。我不必担心用户从标签或个人开始。分解应该是这样的,除了文本总是第一位之外,其他的顺序都是这样的。
TEXT [-description] [#tags] [@people]

编辑
我好像不知道如何正确地抓住它们。例如:
a = "My living room plans #plans #livingroom @cbmeeks #design @moe @larry -this is cool!"

/#\w+/.match(a).to_a
#=> ["#plans"] -- only grabs first one

最佳答案

这将自动删除#@-,并以任何顺序匹配:

string = "My living room plans #plans #livingroom @cbmeeks #design @moe @larry -this is cool!"
text = string[/^(.*?)+(?=\s[@#-])/]
tags = string.scan /(?<=#)\w+/
people = string.scan /(?<=@)\w+/
description = string[/(?<=-)(.*?)+?(?=($|\s[@#]))/]

关于ruby - 如何在Ruby中从字符串中获取文本片段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8767516/

10-12 15:09