\s+(?<request_time>\d+(?:\.\d+)?)\s+ 解释

原创 2016年08月30日 22:38:18
<pre name="code" class="html"><pre name="code" class="html">看elk 看到一个正则;
\s+(?<request_time>\d+(?:\.\d+)?)\s+

回顾下:
(?:pattern)
 匹 配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。

表示括号只是起分隔作用,不将括号中匹配的内容存入内存中
因为如果不加?:的话,括号内匹配的内容会放入$1,$2...这些变量中

1、命名分组格式为(?<grp name>),反向引用时用\k<grp name>

2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{grp name}.


[tomcat@wx02 test]$ cat a2.pl 
my $str="456.123a";
if ($str=~/\d+(\.\d+)/){print "\$1 is $1\n"};
[tomcat@wx02 test]$ perl a2.pl 
$1 is .123


[tomcat@wx02 test]$ cat a2.pl 
my $str="456.123a";
if ($str=~/\d+(\.\d+)?/){print "\$1 is $1\n"};
[tomcat@wx02 test]$ perl a2.pl 
$1 is .123

\d+(\.\d+)? 中的?有什么用呢?


x?  匹配 0 次或一次 x 字符串 


[tomcat@wx02 test]$ cat a2.pl 
my $str="456";
if ($str=~/\d+(\.\d+)?/){print "\$1 is $1\n"};
[tomcat@wx02 test]$ perl a2.pl 
$1 is 
[tomca

这里的(\.\d+)? 就是0次或者1次
zjtest7-frontend:/root/test# cat a1.pl 
my $str="456.123a";
if ($str=~/\d+(?:\.\d+)?/){print "\$1 is $1\n"};
zjtest7-frontend:/root/test# perl a1.pl 
$1 is




                

perl 正则捕获 /(?<request_time>\d+(?:\.\d+)?)\s+/

2.3.2 grok 正则捕获: \s+ 和 [\n\t\r\f]+ 一样 1、命名分组格式为(?),反向引用时用\k 2、命名分组的匹配的结果存在在变量%+变量中,取命名分组值,$+{g...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2017年01月10日 18:40
  • 598

split("\\s+") 和 split(" +") 有什么区别?

"hello world, this is Al".split("\\s+") 首先要明白split方法的参数含义: split public String[] split(String...
  • it_taojingzhan
  • it_taojingzhan
  • 2016年07月20日 15:43
  • 2220

正则表达式"\\s+" - 匹配任意空白字符

正则表达式"\\s+" - 匹配任意空白字符
  • zhangwenbingbingyu
  • zhangwenbingbingyu
  • 2016年08月15日 13:26
  • 10823

正则表达式"\\s+" - 匹配任意空白字符

非常好用的正则表达式"\\s+" - 匹配任意空白字符 详解 "\\s+" 正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等, 等价于[ \f\n\r\t\v] \f ...
  • gyxinguan
  • gyxinguan
  • 2017年07月07日 09:34
  • 437

"\\s+"匹配任意空白字符

"\\s+" - 匹配任意空白字符
  • high2011
  • high2011
  • 2016年12月05日 17:12
  • 541

正则表达式中,[\s\S]* 什么意思

问: 例如:[a-z]表示从a到z之间的任意一个。 不是这样的吗?谁能给我解释一下[ ]的所有用法?感谢   答: 是完全通配的意思,\s是指空白,包括空格、换行、tab缩进等所有的空白,而\...
  • haoyuedangkong_fei
  • haoyuedangkong_fei
  • 2016年12月21日 11:08
  • 4197

perl \s \s* \s+

\s 匹配一个空格 zabbix:/root# cat 1.pl $var='aa bb'; if ($var =~/aa\sbb/){print "11111\n"}; zabbix:/roo...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2015年10月16日 12:13
  • 1639

Lua中string.gmatch方法

下面的表列出了Lua支持的所有字符类:字符类:(character classes) . all characters %a letters %c control characters %d ...
  • suifcd
  • suifcd
  • 2017年12月29日 10:04
  • 119

Pattern p = Pattern.compile("(?s).*\\s+RC=(\\S*)\\s+.*");的意思

("(?s).*\\s+RC=(\\S*)\\s+.*"); ?为某个字符或无字符,s为原样 .为某个字符 *为多个,含0个 \\s为个空格 \\S为非空格字符 +为至少一个 RC=为原样 (\\S...
  • dahuzix
  • dahuzix
  • 2013年03月20日 21:50
  • 1026

正则表达式:(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$

JAV编程思想学习过程中遇到该问题,不太明白这个正则表达式是如何匹配的,现与大家分享我的理解思路。 static public final String POEM = "T...
  • sinat_35209943
  • sinat_35209943
  • 2016年06月03日 16:54
  • 173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:\s+(?<request_time>\d+(?:\.\d+)?)\s+ 解释
举报原因:
原因补充:

(最多只允许输入30个字)