用Ruby正则表达式解析时间

时间:2012-01-21 23:30:38

标签: ruby-on-rails ruby regex

我正在处理一些非常不均匀的数据,我正在使用Ruby正则表达式来解析它。我必须用字符串解析时间,并且在我处理时间的数据中列出为9-10:30AM,9:30 AM-9:00PM,9-10AM。不一定列出会议记录,如果两次都相同,则不列出AM / PM。

我正在尝试使用正则表达式基于这些时间创建ruby时间对象,但是我在开发一个能够捕获任何这些时间的表达式时遇到了麻烦。

这是我尝试过的:

results = rule.scan(/no parking(sanitation broom symbol)(\d+:\d+((a|p)m))-(\d+:\d+((a|p)m)/)

有了这个,我无法返回任何结果,即使结果列在我写的时候。 \ d +用于匹配数字中的整数,我认为使用括号匹配表达式的方式可能有问题。

1 个答案:

答案 0 :(得分:4)

您可能希望在多个部分中解析它,然后使用像https://github.com/mojombo/chronic这样的自然语言解析器来处理日期/时间。