其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

求正则表达式分离参数

GG网络技术分享 2025-03-18 16:14 2


问题描述:

如题,想用正则表达式分割
192.168.1.28 255.255.255.0 192.168.1.1 \"本地连接 4\"
双引号里面的内容不能分隔引号中的空格
效果是:
192.168.1.28
255.255.255.0
192.168.1.1
“本地连接 4”

网友观点:

使用正则如下:((?:\\d{1,3}.){3}\\d{1,3}(?=\\s))|(\\\".*\\\"),可捕获符合楼主要求的组

想实现什么效果呢?可以把分离后的结果贴出来吗?

拿出来双引号的内容么。\\\"([^\\\"]*)\\\"

使用相关项目的正则表达式来提取snmptrap数据的举例

前提条件:
1.安装了zabbix
2.配置了snmptrap监控项,并且有对 snmptrap返回的信息进行分类!!!
3.有一定的正则表达式基础

添加监控项:
1.某设备的snmptrap返回的存储信息如下:


2.在模板上新建监控项,配置如下图:


名称:存储占用率 (可以随便写)

类型:相关项目

键值:storagerate.trap (可以随便写)

主要项:必须选择第一步看到的监控项

信息类型:浮点型 (从第一张图可以看出存储占用率的数据类型是浮点型)

单位:%

(其他不重要)(ಡωಡ)

写完这些内容后不要点保存!不要点保存!不要点保存!

点进程,结果如下图:

名称:正则表达式

参数:(\\")(\\d+\\.\\d+)(\\")

输出:\\2

解析:

第一个括号(\\") ,表示获取该监控项最新数据里的第一个双引号,双引号属于特殊字符,所以前面还加上转义符\\

第二个括号(\\d+\\.\\d+),这里面的\\都是转义符,表示一个任意字符前面和后面都是一串数字

三个括号连起来就表示了 取两个"和里面的一个任意字符前面和后面都是一串数字 的内容

输出\\2表示 取完数据后 输出第二个括号里的正则取到的数据

修改完这些,就可以点击 保存或者更新 按钮了。

3.添加监控主机并链接上这个模板

4.在最新数据里等待结果,结果如下:

QQ在线Zabbix答疑群177428068

标签:

提交需求或反馈

Demand feedback