笔者在使用logstash做日志解析的时候,需要根据日志源(source字段)来进行判断,以何种格式进行解析。
此时source字段来源非常多,比如a,b, c,在此之下有分为很多种日志,如1,2,3.此时我的source就有
a1,a2,a3,b1,b2,b3,c1,c2,c3,如果我现在只想解析1这种类型的日志,而且我不知到之后还会引入多少个源。那么采用正则匹配来判断是必然的了。
正则表达式写法如下
1 首先得在首尾叫上’/’,表示这是个正则 如 [a] =~ /****/
2 接下是几个常用的写法
xx$ :以什么结尾, 如 [a] =~ /abc$/ 就是表示当a这个字段以abc结尾的时候就匹配成功,比如90123abc就是成功的。‘
^xx :同理以什么开头。
[] 中括号用来匹配字符类型 如[0-9]表示一个数字,[^0-9] 表示这个字符不是一个数字。[a-z]表示一个小写字母,[A-Z]大写字母,同理前面加个^表示非.如果想表示它既是一个数字也可能是一个小写字母,则用[0-9a-z]即可,其他相同。
{}这个符号一般得和前面的[]一起使用,它表示前面这个字符出现的次数。
比如{0,3}就是0到3次,{,3}就是3次以下包括三次,{7,}就是7次以上包括7次
举个例子就像下面这个
匹配一个字符串是否是ip地址
ip地址一般格式为
**