如果用户提交如下字符串:
我的客厅平面图,客厅设计图,这很酷!
我想要以下数组/字符串:
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/