找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3148|回复: 2

[已解决] 请大神吗帮忙解决一个正则问题。

1

主题

1

帖子

1

积分

贫民

积分
1
mooc 发表于 2016-8-22 20:10:24 | 显示全部楼层 |阅读模式
172.16.0.1 - - [22/Aug/2016:07:50:16 -0400] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://172.16.0.119/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"


日志分析,请问下如何用re正则匹配到 前边的IP(172.16.0.1) 和 后边 /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1 和 Mozilla/5.0 (Windows NT 10.0; WOW64)


如何让以上三个地方匹配到。请大神们帮下忙

回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
QQ
白玮炜 发表于 2016-8-23 14:54:02 | 显示全部楼层
c = '''172.16.0.1 - - [22/Aug/2016:07:50:16 -0400] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://172.16.0.119/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"'''

rex = re.compile(r'(.*?) - -.*?] "(.*?) HTTP.*?" "(.*?)"')
print re.findall(rex, c)                                 
[('172.16.0.1', 'GET /noindex/css/fonts/Light/OpenSans-Light.ttf', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36')]
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-23 17:48:18 | 显示全部楼层
我在楼上@白玮炜 的基础上改了下, 匹配更精确, 更符合你的要求
import re
c = '''172.16.0.1 - - [22/Aug/2016:07:50:16 -0400] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://172.16.0.119/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"'''

rex = re.compile(r'([\d\.]+) - - \[.*\] "GET (.* HTTP/1\.1)".*?" "(.*?\))')
print re.findall(rex, c)

结果:
[('172.16.0.1', '/noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1', 'Mozilla/5.0 (Windows NT 10.0; WOW64)')]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表