使用Regexp时出现问题,从大量字符串中提取模式

时间:2016-12-02 17:17:44

标签: ruby regex

我有大量的字符串,下面只是一个例子:

'10029885_96945_S  example.com 86.241.75.49 - - [01/Dec/2016:09:00:00 +0000] "GET /_t.gif?pid=12641&evt=25&st=placement&s=0&c=24&t=video&l=dmlkZW8&d=&ord=1480582745631 HTTP/1.1" 200 657 "http://www.lefigaro.fr/flash-actu/2016/11/30/97001-20161130FILWWW00291-paul-guers-et-sa-femme-retrouves-morts-a-leur-domicile.php" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" 10.182.9.228:80'

使用Regexp我需要像这样的字符串:

GET /_t.gif?pid=12641&evt=25&st=placement&s=0&c=24&t=video&l=dmlkZW8&d=&ord=1480582745631

我不太了解Regexp模式应该如何构建,所以任何帮助,评论,技巧,教程都非常赞赏。

谢谢你们!

1 个答案:

答案 0 :(得分:1)

我不是100%确定目标,但这个非常简单的正则表达式会为您的样本返回正确的结果。

/GET \S*/

处理更多可以使用的动词:

/(GET|PUT|PATCH|DELETE) \S*/

正则表达式工作真正令人敬畏的资源是: http://rubular.com/

我强烈建议在那里测试任何复杂的东西。