【问题标题】:Parsing in Ruby (on Rails)在 Ruby 中解析(在 Rails 上)
【发布时间】:2009-04-25 00:50:07
【问题描述】:

我想编写一个 Rails 应用程序来帮助我进行在线扑克。我在 PokerStars 打牌,每手牌都有可用的文本数据。它进来的格式是这样的:

PokerStars 游戏 #27457662450:锦标赛 #157033867,免费德州扑克无限注 - 级别 IV (50/100) - 2009/04/24 20:39:44 ET
表 '157033867 830' 9-max 座位 #1 是按钮
座位 1:DortheaV(筹码 7624)
座位 2:Currly234(筹码 3016)
座位 3:paolilla(筹码 3086)
座位 4: triumph888(筹码 1571)坐在外面
座位 5:Minchausti(筹码 1185)坐在外面
座位 6:madmike11847(筹码 1195)坐在外面
座位 7:alamodey(筹码 4038)
座位 8:whiskerbob(筹码 3365)
座位 9:SHpic76(筹码 1115)坐在外面
DortheaV: 下注 10
Currly234:发布赌注 10
paolilla: 发布 ante 10
triumph888: 发布 ante 10
Minchausti:张贴赌注 10
madmike11847: 发布赌注 10
alamodey: 发布 ante 10
胡须鲍勃:张贴赌注 10
SHpic76:张贴赌注 10
Currly234:发布小盲注 50
paolilla: 发布大盲注 100
*** 洞牌 ***
交易给 alamodey [8s Ks]
triumph888:折叠
Minchausti:褶皱
madmike11847:折叠
阿拉莫迪:拨打 100
胡须:褶皱
SHpic76:折叠
DortheaV:褶皱
Currly234:呼叫 50
保利拉:检查
*** 翻牌圈*** [5c 4h 6d]
Currly234:检查
保利拉:检查
阿拉莫迪:赌注 234
Currly234:折叠
paolilla:褶皱
未跟注 (234) 返回到 alamodey
alamodey 从锅中收集了 390
alamodey: 不显示手
*** 概括 ***
总底池390 |耙 0
板 [5c 4h 6d]
座位 1:DortheaV(按钮)在翻牌前弃牌(没有下注)
座位 2: Currly234(小盲注)在翻牌圈弃牌
座位 3:paolilla(大盲注)在翻牌圈弃牌
座位 4: triumph888 在翻牌前弃牌(没有下注)
座位 5:Minchausti 在翻牌前弃牌(没有下注)
座位 6:madmike11847 在翻牌前弃牌(没有下注)
座位 7:收集了 alamodey (390)
座位 8:在翻牌前弃牌(没有下注)
座位 9:SHpic76 在翻牌前弃牌(没有下注)

是否有任何用于 Ruby 的解析库,还是我必须手动和 hackily 来完成?

【问题讨论】:

    标签: ruby-on-rails ruby parsing poker


    【解决方案1】:

    这听起来像是 Regex 的工作!我怀疑使用任何库是否会使解析变得更容易,因为它是一种非常自定义的格式,你只需要破解它。

    【讨论】:

      【解决方案2】:

      您可能想查看Treetop,这是一个基于Parsing Expression Grammar 的Ruby 解析器生成器。

      【讨论】:

        【解决方案3】:

        Ragel 很好写解析器。例如。 Mongrel的http解析器是用ragel生成的。

        【讨论】:

          【解决方案4】:

          此外,如果您只想要数据,您应该查看PokerTracker。 PokerTracker 存储了 100% 的手牌信息,并拥有完善的架构和开放的 PostgreSQL 数据库。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-28
            • 1970-01-01
            相关资源
            最近更新 更多