-2

您好,我正在尝试通过此标准从服务器日志中提取一些数据,GET但在输出中我想从 [GET] 路径 [协议] 仅获取路径

正则表达式:

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

修复.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]表示从匹配元素列表中获取第二项,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 回答