gpt4 book ai didi

ruby - 正则表达式匹配以 "@"字符为前缀的用户名

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:12 25 4
gpt4 key购买 nike

我正在尝试编写一个方法,该方法接受通过具有以下格式的表单输入的字符串:

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 字符串始终具有您描述的确切格式,即它只包含 @ 前缀的用户名、逗号、和空格;正则表达式可以更简单一些:

usernames.scan(/\w+/)
# => ["user1", "user2"]

关于ruby - 正则表达式匹配以 "@"字符为前缀的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22282485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com