【发布时间】:2011-07-08 20:33:47
【问题描述】:
我正在使用以下正则表达式来捕获以匹配 IRC PART 消息:
:(?<nick>[a-zA-Z\d<\-\[\]\\^{}_]+)!(.+)@(.+) PART (?<chan>[#&][^\x07\x2C\s]{0,200}) :(.+)
它正确匹配并捕获组,因为运行此代码时:
part_regex.match resp do |m|
puts "#{m[:nick]} has parted."
puts db.execute("SELECT * FROM users WHERE nick = ?", m[:nick])
end
第一个puts 有效,并输出正确的字符串。但是第二个puts 没有输出任何东西。我知道表格中存在尼克捕获。每当我使用文字字符串而不是 m[:nick] 时,它都可以正常工作。我正在使用sqlite3-ruby Gem 来操作数据库。
这是收到 PART 消息时的完整输出:
>> :mark!~mark@Mark-Szymanskis-MacBook.local PART #testing :mark
mark has parted.
【问题讨论】:
-
尝试删除记录而不是选择它,如果记录被删除,请检查数据库。
-
@user482594 那也行不通。
-
我认为使用#query 会起作用,但它仍然不起作用。
-
投反对票的人能解释一下吗?