【问题标题】:Regex to match parentheses, hyphens and spaces正则表达式匹配括号、连字符和空格
【发布时间】:2023-03-29 21:29:03
【问题描述】:

我正在尝试为任何有括号、连字符和空格的内容编写一个正则表达式。

我的字符串看起来像

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 字段。我有tried the regex,但无法继续前进:

^(?:[^>\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

【问题讨论】:

  • 试试^(?:[^&gt;\n]*&gt;){2}\w+\s+\w+\d+=(?P&lt;cs_details&gt;.*?)(?=\s*\w+=|$)
  • 哇。太棒了..感谢您的及时回复..如果您可以将其添加为答案,我可以接受它

标签: regex pcre


【解决方案1】:

你可以使用

^(?:[^>\n]*>){2}\w+\s+\w+\d+=(?P<cs_details>.*?)(?=\s*\w+=|$)

请参阅regex demo

= 字符并不特殊,不需要转义。

(?P&lt;cs_details&gt;.*?)(?=\s*\w+=|$) 部分匹配除换行符之外的任何零个或多个字符,尽可能少地使用.*?(将此值捕获到cs_details 组中)紧跟零个或多个空格,然后一个或多个单词字符,然后是 =,或者位于字符串末尾的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多