我想编写一个 Rails 应用程序来帮助我玩在线扑克。我在 PokerStars 玩牌,玩过的每手牌都有可用的文本数据。它的格式是这样的:
PokerStars Game #27457662450: Tournament #157033867, Freeroll Hold'em No Limit - Level IV (50/100) - 2009/04/24 20:39:44 ET Table '157033867 830' 9-max Seat #1 is the button Seat 1: DortheaV (7624 in chips) Seat 2: Currly234 (3016 in chips) Seat 3: paolilla (3086 in chips) Seat 4: triumph888 (1571 in chips) is sitting out Seat 5: Minchausti (1185 in chips) is sitting out Seat 6: madmike11847 (1195 in chips) is sitting out Seat 7: alamodey (4038 in chips) Seat 8: whiskerbob (3365 in chips) Seat 9: SHpic76 (1115 in chips) is sitting out DortheaV: posts the ante 10 Currly234: posts the ante 10 paolilla: posts the ante 10 triumph888: posts the ante 10 Minchausti: posts the ante 10 madmike11847: posts the ante 10 alamodey: posts the ante 10 whiskerbob: posts the ante 10 SHpic76: posts the ante 10 Currly234: posts small blind 50 paolilla: posts big blind 100 *** HOLE CARDS *** Dealt to alamodey [8s Ks] triumph888: folds Minchausti: folds madmike11847: folds alamodey: calls 100 whiskerbob: folds SHpic76: folds DortheaV: folds Currly234: calls 50 paolilla: checks *** FLOP *** [5c 4h 6d] Currly234: checks paolilla: checks alamodey: bets 234 Currly234: folds paolilla: folds Uncalled bet (234) returned to alamodey alamodey collected 390 from pot alamodey: doesn't show hand *** SUMMARY *** Total pot 390 | Rake 0 Board [5c 4h 6d] Seat 1: DortheaV (button) folded before Flop (didn't bet) Seat 2: Currly234 (small blind) folded on the Flop Seat 3: paolilla (big blind) folded on the Flop Seat 4: triumph888 folded before Flop (didn't bet) Seat 5: Minchausti folded before Flop (didn't bet) Seat 6: madmike11847 folded before Flop (didn't bet) Seat 7: alamodey collected (390) Seat 8: whiskerbob folded before Flop (didn't bet) Seat 9: SHpic76 folded before Flop (didn't bet)
是否有任何适用于 Ruby 的解析库,或者我是否必须手动和 hackily 执行此操作?
最佳答案
这听起来像是 Regex 的工作!。我怀疑使用任何库会使它更容易解析,因为它是一种非常自定义的格式,您只需要修改它即可。
关于ruby-on-rails - 在 Ruby 中解析(在 Rails 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787983/