gpt4 book ai didi

正则表达式识别数字,除非被 "[" "]"包围

转载 作者:行者123 更新时间:2023-12-04 15:44:54 26 4
gpt4 key购买 nike

我想写一个正则表达式,这样我只匹配没有用方括号括起来的第一个数字。

例如asdadsas,*&(*&(*2asdasd*U(*&*()&(*3应该匹配 2(没有方括号)

asdadsas,*&(*&(*[2]asdasd*U(*&*()&(*3应该匹配 3

到目前为止,我拥有的正则表达式是:(?<!\[)[0-9](?!\])
但是,我遇到的问题是 [2应该仍然匹配 2。

如果它有 [,我只想跳过这个数字向左和一个 ]向右。

我不知道如何(或者甚至可能)在正则表达式中实现这种条件逻辑。

最佳答案

以下应该工作:

[0-9](?!(?<=\[.)\])

示例: http://rubular.com/r/0vKy8hyMy0

说明: [0-9]匹配一个数字, (?!(?<=\[.)\])强制要求该数字前后的字符不是 []分别。要分解这一点,请考虑以下正则表达式:
(?<=\[.)\]

这可以理解为“匹配 ] 但前提是两个位置之前的字符是 [”。通过在匹配数字后立即将其置于负向前瞻中,如果两个位置之前的字符是 [,我们可能会失败。下一个字符是 ] .

关于正则表达式识别数字,除非被 "[" "]"包围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19865177/

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