gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:37:54 25 4
gpt4 key购买 nike

我有一个日志文件,用于记录 LAN 中计算机的连接中断。我想从日志文件的每一行中提取每台计算机的名称,为此我这样做:(?<=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.`

enter image description here

问题是有些计算机名有 -PC在他们和一些不是。我创建的表达式匹配没有 -PC 的计算机在他们的名字中,但如果一台计算机有 -PC在名称中,它将其视为单独的匹配项,我不想要那样。简而言之,它给了我 3 个匹配项,但我只想要 2 个。这就是我需要帮助的原因,我是正则表达式的初学者。

最佳答案

您可以使用

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

详情
  • (?<=Name:) - 紧跟在 Name: 之前的地方
  • \w+ - 1+字字符
  • (?:-PC)? - 一个可选的非捕获组,匹配 1 或 0 次 -PC子串。

  • 如果您需要匹配 PC,请考虑使用单词边界总而言之,
    (?<=Name:)\w+(?:-PC\b)?

    regex demo .

    关于regex - 用于匹配字符串的特定子字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60080428/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com