Grok 正则捕获
Grok 正则捕获:
\s+(?<request_time>\d+(?:\.\d+)?)\s+ 回顾下:
(?:pattern)
匹 配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry| industries’ 更简略的表达式。 表示括号只是起分隔作用,不将括号中匹配的内容存入内存中
因为如果不加?:的话,括号内匹配的内容会放入$1,$2...这些变量中 1、命名分组格式为(?<grp name>),反向引用时用\k<grp name> 2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}. ? 表示前面字符出现1次或者0次; (pattern)
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 “”或‘’。 (?:pattern)
匹 配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry| industries’ 更简略的表达式。 begin 123.456 end [elk@dr-mysql01 frontend]$ cat a1.pl
my $str='begin 123.456 end'; if ($str =~/\s+(?<request_time>\d+(?:\.\d+)?)\s+/){ print "\$1 is $1\n";};
[elk@dr-mysql01 frontend]$ perl a1.pl
$1 is 123.456 1、命名分组格式为(?<grp name>),反向引用时用\k<grp name> 2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}. zjtest7-frontend:/root/0825# cat a1.pl
my $str=" begin 123.456 end ";
if ($str =~/(?<request_time>\d+\.\d+)/)
{
my ($request_time) = ($+{request_time});
print $request_time."\n";};
zjtest7-frontend:/root/0825# perl a1.pl
123.456 zjtest7-frontend:/root/0825# cat a1.pl
my $str=" begin 123.456 end ";
if ($str =~/(?<request_time>\w+\s+\d+)/)
{
my ($request_time) = ($+{request_time});
print $request_time."\n";};
zjtest7-frontend:/root/0825# perl a1.pl
begin 123
Grok 正则捕获的更多相关文章
- grok 正则捕获(就是perl的正则捕获)
2.3.2 grok 正则捕获: \s+ 和 [\n\t\r\f]+ 一样 1.命名分组格式为(?<grp name>),反向引用时用\k<grp name> 2.命名分组的匹 ...
- grok 正则解析日志例子<1>
<pre name="code" class="html">下面是日志的样子 55.3.244.1 GET /index.html 15824 0. ...
- expect正则捕获返回结果
expect正则捕获返回结果 expect: expect -re "([0-9]*)([a-zA-Z]*)"send_user "num is $expect_out( ...
- logstash grok正则调试
logstash 正则调试: nginx 配置: log_format main '$remote_addr [$time_local] "$request" '; logstas ...
- logstash 使用grok正则解析日志
http://xiaorui.cc/2015/01/27/logstash%E4%BD%BF%E7%94%A8grok%E6%AD%A3%E5%88%99%E8%A7%A3%E6%9E%90%E6%9 ...
- 正则捕获url的?号传值
http://www.baidu.com/Q?k=0012719021908563998510650 有时候,我们需要在静态页面捕获?号传值,这时就需要用到js的正则表达式. 例如:我们要获取上面这个 ...
- 正则捕获的细节及replace分析
1.var reg=/./与var reg=/\./的区别? 前者代表任意一个字符, 后者代表这个字符串中得有一个点 2.?的使用 如果单独的一个字符后面带? 代表1个或0个这个字符的出现: 列如: ...
- nginx grok 正则错误的输出情况
nginx 配置: http { include mime.types; default_type application/octet-stream; log_format main '$http_h ...
- Python 正则 —— 捕获与分组
\n:表示第 n 个捕获: >> s = "<html><h1>what the fuck!</h1></html>" ...
随机推荐
- Global build settings
[ ] Select all packages by default *** General build options *** [ ] Show packages that require gr ...
- Java里的equals总结
前段时间一直在工作中使用Java,由于有一些C++功底,于是简单看了一下Java相关的语法便开始编写代码,结果在创建一个自定义类,并将自定义类放入ArrayList中,之后查找ArrayList是否有 ...
- 马士兵 Servlet_JSP(2) JSP源代码)
1.最简单的JSP HelloWorld.jsp <html> <head> <title>Hello</title> ...
- 微博OpenAPI练习之问题记录
今日想通过新浪微博OpenAPI,做一个客户端出来.可以说过程比较艰难.这里只记录下遇到的问题,其它的按api要求注册.创建应用什么就好了. 1.API jar引用问题 创建了自己的工程,并按照文档说 ...
- curl 学习
<?php // $username =13800138000; // $password =123456; // $sendto =13912345678; // $message = &qu ...
- FileUtil.java
package com.founder.util.file; import java.io.BufferedReader; import java.io.File; import java.io.Fi ...
- spring 通过工厂方法配置Bean
概要: 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当client须要对象时,仅仅须要简单地调用静态方法,而不用关心创建对象地细节. 要声明通过静 ...
- 2.4 Git 基础 - 撤消操作
2.4 Git 基础 - 撤消操作 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失 ...
- JavaScript 字符串函数 之查找字符方法(一)
1.JavaScript查找字符方法 首先看一张 有关字符串函数的查找字符的方法图 接下里补充里面的方法说明 2.charAt() charAt() 方法返回字符串中指定位置的字符 语法 ...
- RMAN之进入RMAN(转)
通过RMAN的方式不论要备份还是要恢复,都必须先启动实例并加载数据库. SQL> shutdown immediate数据库已经关闭.已经卸载数据库.ORACLE 例程已经关闭. C:\User ...