RegEx ruby​​中的多个步骤

时间:2012-11-30 00:33:28

标签: ruby regex

给出以下字符串:

"oxcCFC/video.mp4 "GET /accounts/6/videos/xboxcCFC/video.mp4 HTTP/1.1" 206 - 2 697898511 56 56 "-""

我如何创建一个正则表达式,首先找到“HTTP,然后找到” - “,然后捕获序列中出现的下一个单个数字或连续数字?

我正在尝试使用rubular但是很难挣扎。

3 个答案:

答案 0 :(得分:1)

不是很多,但我认为它应该是这样的:

/^.*\s+HTTP.*\s+-\s+(\d+)\s+/

然后,反向引用将保留您所追求的值。

答案 1 :(得分:0)

我看看你是否可以使用apachelogregex gem ... http://rubydoc.info/gems/apachelogregex/0.1.0/frames

答案 2 :(得分:0)

简短回答:/HTTP[^-]*-([\d\s]+)/ 然后,在结果上调用split

此正则表达式转换为:

“HTTP”,后跟任意数量的非连字符,后跟连字符,后跟最大的字符串,仅包含数字和空格。