2011-11-15 11 views
1

私はファイルを読むためにrubyを使用していますが、何とか各行のデータを解析して配列に格納する必要があります。ファイルからの二つの例「行」をしている。このことからregexを使用して大きな文字列内の部分文字列を取得する

64.34.145.197 - - [03/Sep/2006:05:31:37 -0400] "GET /robots.txt HTTP/1.0" 200 56 
64.34.145.197 - - [03/Sep/2006:05:31:37 -0400] "GET /manual/mod/mod_autoindex.html HTTP/1.0" 200 39134 

私は/robots.txt/manual/mod/mod_autoindex.htmlを取得する必要があります。次の単純なRegExを使用して、私はGET /robots.txtGET /manual/mod/mod_autoindex.htmlを抽出することができましたが、私はGETを振るように見えません。

arr.push(/GET \S+/.match(line)) 

私はいくつかの先を見てきましたが、私はかなりRegEx n00bです。どんな助けでも大歓迎です。

答えて

2

これは、実行する必要があります。

arr.push(/(?<=GET)\S+/.match(line)) 

HTTPはあなたにも、 "フレーム" のマッチを促進するために、これを行う可能性があるURLをたどることが保証されている場合:

arr.push(/(?<=GET)\S+(?= HTTP)/.match(line)) 

(?<=...)(?=...)positive lookaroundsと呼ばれています、btw。

+0

私は答えを見つけたと言うページをリフレッシュしました。これが私が見つけたものです。ありがとう! – CoryDorning

関連する問題