用于匹配字符串的特定子字符串的正则表达式

神圣苏莱曼

我有一个日志文件,用于记录局域网中计算机的连接断开。我想从日志文件的每一行中提取每台计算机的名称,为此,我正在这样做:(?<=Name:)\w+|(-PC)

目标文本:

 `[C417] ComputerName:KCUTSHALL-PC UserID:GO kcutshall Station 9900 (locked) LanId: | (11/23 10:54:09 - 11/23 10:54:44) | Average limit (300) exceeded while pinging www.google.com [74.125.224.147] 8x

[C445] ComputerName:FRONTOFFICE UserID:YB Yenae Ball Station 7C  LanId: | (11/23 17:02:00) | Client is connected to agent.`

在此处输入图片说明

问题在于某些计算机名称包含-PC其中,有些则没有。我创建的表达式匹配没有-PC名称的计算机,但是如果计算机具有-PC名称,则将其视为单独的匹配项,我不希望这样。简而言之,它给了我3场比赛,但我只想要2场。这就是为什么我在这里需要帮助,我是regex的初学者。

维克多·史翠比维

您可以使用

(?<=Name:)\w+(?:-PC)?

细节

  • (?<=Name:) -紧接在前面的地方 Name:
  • \w+ -1个以上的字符
  • (?:-PC)?-匹配1或0次出现的-PC子字符串的可选非捕获组

如果您需要匹配PC整个单词,请考虑使用单词边界

(?<=Name:)\w+(?:-PC\b)?

请参阅regex演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式,用于替换特定子字符串前后的特定字符

正则表达式匹配字符串中的固定子字符串

正则表达式以匹配非特定子字符串的内容

如何创建正则表达式以匹配括号内的特定子字符串?

匹配包含以4位正则表达式结尾的特定子字符串的字符串

如何通过正则表达式匹配或捕获给定字符串中的特定子字符串模式?

用于字符串匹配的正则表达式

对以特定子字符串结尾的字符串进行正则表达式

正则表达式与特定字符串匹配

正则表达式特定的匹配字符串

一个正则表达式,用于匹配没有其他特定子字符串的子字符串

正则表达式,用于将字符串与子字符串匹配

正则表达式匹配空或任何字符串,除了用于请求映射的特定字符串

正则表达式匹配直到满足特定字符串或字符串结尾

正则表达式在特定字符串之后不匹配字符串

Java模式正则表达式,用于查找不以特定子字符串结尾的数字

正则表达式拆分字符串,指定子字符串除外

使用R中的正则表达式删除字符串中的特定子字符串

使用正则表达式在Java中的某些特定子字符串之后分割字符串

您将如何使用正则表达式忽略包含特定子字符串的字符串?

正则表达式-禁用同一行的特定子字符串

正则表达式在特定子字符串后查找数字

正则表达式:获取特定子字符串之前和之后的数字

为特定子字符串创建带有“非”条件的正则表达式

正则表达式,匹配字符串

提取匹配正则表达式的字符串

使用正则表达式匹配字符串?

用正则表达式匹配字符串

正则表达式与字符串不匹配