字段顺序不固定的正则表达式

正则

(?<logstream_country_isp_province>\d+\.\d+\.\d+\.\d+).*? \[(?<logstream_timestamp>\d+\/\w+\/\d+:\d+:\d+:\d+).*? \"(?<http_method>\S+) .*?v.gif\?.*?(?:media_type=(?<media_type>\d+)&|page_type=(?<page_type>\d+)&|channel_type=(?<channel_type>\d+)&|mod=(?<mod>\w+)&|page=(?<page>\d+)&|play_time=(?<play_time>\d+)&|.+?=[\w]*&)+

测试字符串

60.9.140.7 - - [04/Jul/2017:18:00:00 +0800] "GET /feed/v.gif?media_type=1&channel_type=4&page=1&page_type=1&mod=recommend&pd=feed&type=1&index=1&stime=1499162393854&refer=&play_time=0&showInfo=%5B%7B%22locid%22%3A%22http%3A%2F%2Fwww.internal.video.baidu.com%2F54b1df58f5c3d941553a705e38c49e39.html%22%2C%22index%22%3A%222%22%7D%5D&cache_t=1499162395174 HTTP/1.1"

语法解释:

?: (...)的不分组的版本

.*?v.gif\?.*? 不能写成 .*?v.gif.*? 否则因为是非贪婪匹配,即前面会尽量少的匹配,把匹配工作交给后面(导致.+?=[\w]*&会把?media_type=1&匹配掉,media_type分组采集不到)

时间: 2024-10-01 07:59:36

字段顺序不固定的正则表达式的相关文章

mysql更改表结构:添加、删除、修改字段、调整字段顺序

添加字段: alter table `user_movement_log`Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加) 删除字段: alter table `user_movement_log` drop column Gatewayid 调整字段顺序: ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not n

MySQL 字段常用操作 添加,修改,删除,调整字段顺序

整理备忘: 添加字段:alter table 表名Add column 字段名 字段类型  默认值 AFTER 字段名 (在哪个字段后面添加) 例子: alter table appstore_souapp_app_androidmarket Add column getPriceCurrency varchar(50) default null AFTER getPrice 修改字段:alter table表名change 字段名 新字段名 字段类型 默认值 例子: alter table a

如何在PL/SQL中修改ORACLE的字段顺序

今 天下午工作中遇到的问题,我需要将A表中的数据放到它的备份表A_1中去,但A_1表中缺少两个字段,于是我就给它加上两个字段,但新加的字段会默认排在 在最后面,与表A中的字段顺序不一致,那么用insert into A_1 select * from A; 时就会出错. 当时用了一个笨方法,如下: --新建临时表以存储正确的顺序 create table A_2  as select (column1,colum2,……A表中的顺序) from A_1 ; --删除表A_1 drop table

关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题

1.关于count(1),count(*),和count(列名)的区别 相信大家总是在工作中,或者是学习中对于count()的到底怎么用更快.一直有很大的疑问,有的人说count(*)更快,也有的人说count(列名)更快,那到底是谁更快,我将会在本文中详细介绍一下到底是count(1),count(*)和count(列明)的区别,和更适合的使用场景. 往常在工作中有人会说count(1)比count(*)会快,或者相反,首先这个结论肯定是错的,实际上count(1)和count(*)并没有区别

mysql 添加字段、删除字段、调整字段顺序

用过MySQL的朋友,可能都在使用phpMyAdmin,我从2003年开始使用,感觉那东西适合远程mysql管理,并 不适合单机.单数据库的管理操作,特别是开发使用. 给家推荐一个软件管理mysql数据库:SQLyog SQLyog - [ 翻译此页 ] Manage, Monitor MySQL servers using our popular MySQL GUI Tools. 好了,正文开始,我们以www.souapp.com(搜应用网)的数据库表appstore_souapp_app_a

DB字段顺序与类的属性顺序一致:{Oracle.DataAccess.Client.OracleException ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER

{Oracle.DataAccess.Client.OracleException ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER     应用程序中类型TD_LEARNCARD的属性顺序必须和Oracle字段顺序中一致.

Oracle 修改字段顺序的两种方法

分类: Oracle 如果要修改字段顺序,一般情况可以使用以下步骤: --(1)备份目标表数据 create table 临时表 as select * from 目标表; --(2)drop 目标表 drop table 目标表; --(3)再重新按照要求的字段顺序建表; create table 临时表 (col1,................coln); --(4)之后用select将数据从临时表导回. 此外,还可以通过修改sys的数据字典来实现.以下是自己的亲身测试记录 --第1步

[linux][mysql] 命令更改表结构:添加、删除、修改字段、调整字段顺序

原文出处:http://www.phpernote.com/MySQL/1120.html 1 常用的通过mysql命令来更改表结构的一些sql语句,包括添加.删除.修改字段.调整字段顺序. 2 3 添加字段: 4 5 alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid`; (在哪个字段后面添加) 6 7 删除字段: 8 9 alter table `user_mo

Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结

在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现. 1.增加一个字段  代码如下 复制代码 //增加一个字段,默认为空alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认不能为空al