以下の文字列を考えると:
"oxcCFC/video.mp4 "GET /accounts/6/videos/xboxcCFC/video.mp4 HTTP/1.1" 206 - 2 697898511 56 56 "-""
最初に「HTTP」を検索し、次に「-」を検索し、シーケンス内で発生する次の個々の番号または連続した番号をキャプチャする正規表現を作成するにはどうすればよいですか?
rubular を使用しようとしていますが、苦労しています。
あまり多くはありませんが、次のようにする必要があると思います。
/^.*\s+HTTP.*\s+-\s+(\d+)\s+/
後方参照は、あなたが求めている値を保持します。
apachelogregex gem を使用できるかどうかを確認します... http://rubydoc.info/gems/apachelogregex/0.1.0/frames
簡単な答え:/HTTP[^-]*-([\d\s]+)/
次に、結果を呼び出しますsplit
。
この正規表現は次のように変換されます。
「HTTP」の後に任意の数のハイフン以外の文字が続き、その後にハイフンが続き、その後に数字とスペースのみで構成される最大の文字列が続きます。