regex - 正则表达式匹配括号、连字符和空格
问题描述
我正在尝试为任何有括号、连字符和空格的东西编写一个正则表达式。
我的弦看起来像
Jan 29 06:32:56 172.16.23.26 Jan 29 06:30:27 : CEF:0|ABCD Networks|NAC-VM-C|8.6.2.1203|-1|IP Address Update|1|rt=Jan 29 06:30:27 877 EST cat=EndStation src=10.10.14.58 smac=FA:39:71:6F:B3:43 shost=iPhone cs1Label=Physical<space>network<space>location cs1=AMNYPARU535A-FL37-VIP ROLE mobile msg=Adapter FA:39:71:6F:B3:43 IP Address changed from 10.10.14.53 to 10.10.14.58
Jan 28 21:22:51 172.16.23.26 Jan 28 21:20:24 : CEF:0|ABCD Networks|FortiNAC-VM-C|8.6.2.1203|-1|IP Address Update|1|rt=Jan 28 21:20:24 110 EST cat=EndStation src=10.3.38.61 smac=EA:19:49:37:10:73 shost=TsutomunoiPhone cs1Label=Physical<space>network<space>location cs1=APTOKARU535A-VIP ROLE mobile msg=Adapter EA:19:49:37:10:73 IP Address changed from 100.64.241.38 to 10.3.38.61
Jan 29 10:52:59 172.16.23.26 Jan 29 10:50:30 : CEF:0|ABCD Networks|NAC-VM-C|8.6.2.1203|303067011|Rogue Connected|1|rt=Jan 29 10:50:30 523 EST cat=EndStation smac=42:DE:D8:19:D2:69 cs1Label=Physical<space>network<space>location cs1=EUPARARU535A [10.2.32.198]-VIP ROLE registration msg=Rogue Host 42:DE:D8:19:D2:69 Connected to EUPARARU535A [10.2.32.198]-VIP ROLE registration.
cs1=
我的目标是在 msg 字段之前得到任何东西。我已经尝试了正则表达式,但无法进一步取得进展:
^(?:[^>\n]*>){2}\w+\s+\w+\d+\=(?P<cs_details>\w+[ -])
我需要从上述正则表达式中匹配的字段:
AMNYPARU535A-FL37-VIP ROLE mobile
APTOKARU535A-VIP ROLE mobile
EUPARARU535A [10.2.32.198]-VIP ROLE registration
解决方案
您可以使用
^(?:[^>\n]*>){2}\w+\s+\w+\d+=(?P<cs_details>.*?)(?=\s*\w+=|$)
请参阅正则表达式演示。
char 并不特殊,=
您不需要对其进行转义。
该(?P<cs_details>.*?)(?=\s*\w+=|$)
部分匹配除换行符之外的任何零个或多个字符,尽可能少地使用.*?
(将此值捕获到cs_details
组中)紧随其后的是零个或多个空格,然后是一个或多个单词字符,然后是 a =
,或者在字符串的末尾。
推荐阅读
- javascript - 将函数提取到独立的 reactjs 组件中会抛出对象作为 React 子级无效(找到:[object Window])
- python-3.x - 尝试使用 Python 从 URL 下载文件时出现 HTTP 403 错误
- android - Flutter 开发工具 - 显示请求负载
- javascript - Docsify.js:函数未在 HTMLButtonElement.onclick 中定义
- google-fit - 是否有默认派生 api 调用来访问 Google Fit API 上的氧饱和度和体温数据
- html - html表单选择动态预选值(烧瓶)
- c# - c# 将 "\\" 替换为 "\" 字符
- javascript - Rmarkdown 报告 (HTML) 中分组数据框上的 DT::datatable
- vba - Word VBA:查找一串文本并将其所有实例更改为标题大小写
- python - 有没有办法在 Python 的列表间隔中使用 map ?