gpt4 book ai didi

python - 带有可选捕获组和否定前瞻的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 05:28:13 24 4
gpt4 key购买 nike

这个问题困扰我很久了。这是我要搜索的字符串的基础:

aa.bb.cc

每个标记(由'.'标记)可以在零个或多个数组索引组之后/后跟:

例如aa[1].bb[2][3].cc

如果我的文本包含一个字符串,其中包含带有可选数组索引的确切标记数,我想匹配。但是,如果我要搜索的文本包含一个额外的“。”和 token ,我不想要任何匹配:

例如 aa[1].bb[2].cc.dd

我很难找到一个模式,其中包含带有负先行的可选数组索引组 - 我一直在使用 (?!\.) - 作为模式。这是我尝试过的模式之一:

((\w+)([\[\]\w]+)*\.(\w+)([\[\]\w]+)*\.(\w+)([\[\]\w]+)*)(?!\.)

如果我的搜索字符串是aa[1].bb[2][3].cc 组如下:

  1. aa[1].bb[2][3].cc
  2. 一个
  3. [1]
  4. bb
  5. [2][3]
  6. 抄送
  7. 没有

但是,如果我的搜索字符串包含一个标记,甚至只是“.”,如上所述,我希望整个匹配失败。但是,搜索会返回相同的匹配组。

最佳答案

使用这个模式,它会在任何地方捕获 3 组:

(?<!\.)\b((?:(?:\w+(?:\[\d+\])*)\.){2}(?:\w+(?:\[\d+\])*))(?![\w\.])

Demo

关于python - 带有可选捕获组和否定前瞻的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999932/

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