我正在尝试编写一种方法,该方法采用通过以下格式的表单输入的字符串:
string = "@user1, @user2, @user3"
并返回类似的数组['user1', 'user2', 'user3']
。
这是我到目前为止所拥有的:
usernames = "@user1, @user2"
temp_recipient_usernames = usernames.split(',')
recipient_usernames = temp_recipient_usernames.each do |u|
u.gsub /@(\w+)/ do |username|
@final_usernames = username.gsub('@', '')
end
end
p @final_usernames
这只会返回字符串"user2"
。我该如何工作?
您正在重新发明轮子,这里的String#scan方法正是出于您的目的:
usernames = "@user1, @user2"
usernames.scan(/(?<=@)\w+/)
# => ["user1", "user2"]
更新:鉴于usernames
字符串始终具有您描述的确切格式,即它仅包含-@
前缀使用名,逗号和空格;可以将regexp简化一些:
usernames.scan(/\w+/)
# => ["user1", "user2"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句