gpt4 book ai didi

regex - 在 "\d+"正则表达式模式中排除一组特定数字

转载 作者:行者123 更新时间:2023-12-01 02:32:08 26 4
gpt4 key购买 nike

假设我有一些字符串:

some50
some51/x
some52/y
some53/z
some510
some511/x
some512/y
some513/z

我想测试我的字符串是否为 some 形式+ 一个数字 + 任何东西。

我为此要求使用模式: ^some\d+ ,这将返回我所有的匹配项。

现在我需要排除一些数字。例如,我必须从匹配项中排除 51 和 52。正确的表达是什么?

我已经尝试过(更多的是猜测而不是我承认的尝试):
  • ^some(\d+|(?!(51|52)))
  • ^some((\d+)(?!(51|52)))
  • ^some(\d+)^(?!(51|52)))
  • ^some(\d+)(?!(51|52)))

  • 但他们都没有返回预期的结果,即:
    some50
    some53/z
    some510
    some511/x
    some512/y
    some513/z

    PS:不知道这是否重要,但在 PowerShell 脚本中使用了正则表达式。

    [编辑] 扩展问题以表明不应排除 51x

    最佳答案

    您正在寻找否定前瞻断言。我不熟悉 PowerShell 脚本,但在 perl 兼容的正则表达式中,这有效:

    ^some(?!(51$|52$))\d+$

    这也不会匹配 some510 .如果这不是故意的,请删除 $之后 5152
    更新:从字符串边界更改为字边界(在字符串末尾)
    ^some(?!(51\b|52\b))\d+\b

    关于regex - 在 "\d+"正则表达式模式中排除一组特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12531960/

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