-2

こんにちは、サーバーログからこの基準でいくつかのデータを抽出しようとしていますGETが、出力で [GET] パス [プロトコル] から取得したいのはパスのみです

正規表現:

line.match(/[a-z0-9]*GET \s*([\/a-zA-Z]+)/)

fix.rb

...
GET /edu/languages/google
GET /edu/languages/google
GET /baz/img/techtalk
...

それで、GET部分を削除する必要があります...何かアドバイスはありますか?ありがとうございました

4

2 に答える 2

2

最初のヒントは、rubular.comを使用することです。

簡潔な答え

res = line.match(/^GET(.*)/)[1]

意味:(必要な場合)

  1. ^GET文字列の先頭で一致を示します
  2. ()その部分の結果を回復可能なオブジェクトにキャプチャすることを示します
  3. .*必要なものなので、すべてをキャプチャすることを意味します。
  4. [1]一致した要素のリストから 2 番目の項目を取得することを意味します。0 は一致した文字列全体です。

必要に応じてループを繰り返す

于 2013-02-25T14:37:13.450 に答える
0

ブラケット演算子を使用して、必要な一致データを選択できます

"GET /hello".match(/[a-z0-9]*GET \s*([\/a-zA-Z]+)/)[1]
 => "/hello" 
于 2013-02-25T14:28:34.393 に答える