使用正则表达式通过循环解析以仅显示匹配结果?
Using regex to parse through loop to display only matching results?
问题: 我遇到了匹配特定正则表达式的循环结果的问题。
我正在尝试使用 Twitter API 生成用户名 (username2),该用户名在另一个用户 (username) 上发推文,我在我的 控制器中创建了这个:
@user_results = TwitterApi.client.search("to:username1", result_type: "recent").take(10).collect do |tweet|
puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
然后在我的视图中像这样循环:
<% @user_results.each do |user| %>
<%= user %>
<% end %>
即使应该是结果,也没有任何结果。
如果我用 "#{tweet.user.screen_name}".gsub(/\A^username2\z.*/)
结果:
<Enumerator:0x00007fb3a4b2f2a0>
我也试过了:
tweet.user.screen_name.gsub(/\A^username2\z.*/) { |match| "#{tweet.user.screen_name}"}
但它会生成所有结果而不是要匹配的结果
如果我丢掉 puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
并只使用 "#{tweet.user.screen_name}"
,这会很好用。这样,所有用户名都会出现。
我使用的正则表达式如果正确并且适用于 Regx101 网站中的所有变体。
我希望只有出现特定用户名时才会出现结果或为真。
我做错了什么?是控制器片段还是视图端?
总的来说,我希望能够得到用户名,并给出一个真实的 ||假的。
tweet.user.screen_name if tweet.user.screen_name.match('username2')
这匹配 ()
中的任何正则表达式或字符串
我的决赛是这样的:
TwitterApi.client.search("to:username", result_type: "recent").take(10).collect do |tweet|
tweet.user.screen_name if tweet.user.screen_name.match(/#{@record.username}/i)
end
无论大小写不敏感,这样结果都是真实的
问题: 我遇到了匹配特定正则表达式的循环结果的问题。
我正在尝试使用 Twitter API 生成用户名 (username2),该用户名在另一个用户 (username) 上发推文,我在我的 控制器中创建了这个:
@user_results = TwitterApi.client.search("to:username1", result_type: "recent").take(10).collect do |tweet|
puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
然后在我的视图中像这样循环:
<% @user_results.each do |user| %>
<%= user %>
<% end %>
即使应该是结果,也没有任何结果。
如果我用 "#{tweet.user.screen_name}".gsub(/\A^username2\z.*/)
结果:
<Enumerator:0x00007fb3a4b2f2a0>
我也试过了:
tweet.user.screen_name.gsub(/\A^username2\z.*/) { |match| "#{tweet.user.screen_name}"}
但它会生成所有结果而不是要匹配的结果
如果我丢掉 puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
并只使用 "#{tweet.user.screen_name}"
,这会很好用。这样,所有用户名都会出现。
我使用的正则表达式如果正确并且适用于 Regx101 网站中的所有变体。
我希望只有出现特定用户名时才会出现结果或为真。
我做错了什么?是控制器片段还是视图端?
总的来说,我希望能够得到用户名,并给出一个真实的 ||假的。
tweet.user.screen_name if tweet.user.screen_name.match('username2')
这匹配 ()
我的决赛是这样的:
TwitterApi.client.search("to:username", result_type: "recent").take(10).collect do |tweet|
tweet.user.screen_name if tweet.user.screen_name.match(/#{@record.username}/i)
end
无论大小写不敏感,这样结果都是真实的