我正在解析一个日志文件,被困在尝试为以下令牌编写正则表达式
sshd[7623]:
我可以匹配sshd字符串,但是当匹配左方括号时,perl只会抛出一个关于缺少右方括号的错误。
如果我尝试同时匹配两者(如下所示),则我不会抓住任何一个。
$re1='(\\[)(\\d+)(\\])';
$re2='(\\[.*?\\])';
但两者都没有奏效。匹配的正确方法是什么?
这将捕获括号内的单词和括号内的数字:
use warnings;
use strict;
if ('sshd[7623]:' =~ /(\w+)\[(\d+)\]:/) {
print "word=$1 number=$2\n";
}
__END__
word=sshd number=7623
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句