正则表达式 - python pandas的sep参数问题
问题描述
最近想学习利用python的pandas处理apache的大日志,从国外找了一篇文章链接描述,对方用的是sep正则表达式提取数据
pd.read_csv(file_name, sep=r’s(?=(?:[^']*'[^']*')*[^']*$)(?![^[]*])’, engine=’python’, na_values=’-’, header=None,usecols=[0, 3, 4, 5, 6, 7, 8], names=[’ip’, ’time’, ’request’, ’status’, ’size’, ’referer’, ’user_agent’], converters={’time’: parse_time, ’request’: parse_str, ’status’: int, ’size’: int, ’referer’: parse_str, ’user_agent’: parse_str})
apache的日志格式是
192.168.1.106 - - [23/Feb/2017:16:39:00 +0800] 'GET / HTTP/1.1' 200 2054 '-' 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36'
得到的结果是其他参数容易理解,就是sep的正则表达式不大理解,而且好像和python的正则还有点区别,麻烦大神讲解一下这个正则的含义
问题解答
回答1:sep参数是用于指定分割符,这个正则的意思是按空格分割,但是排除包括在[]或''中间的空格
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题3. USE关键字4. javascript - mysql插入数据时怎样避免与库中的数据重复?5. MySQL 这句 创建表结构语句的错误在哪?6. 导入phpmyadmin的时候报错了7. MySQL能否给某个字段的值设置有效期?8. 求一个mySQL安装包9. mysql数据库做关联一般用id还是用户名10. MySQL 如何 SELECT 除去某一列的所有列?
