gpt4 book ai didi

Python 正则表达式 - 在子字符串中查找多个字符

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:07 25 4
gpt4 key购买 nike

print 'cycle' ;While i in range(1,n) [[print "Number:" ;print i; print 'and,']]

例如,我有这样一行。我只想从双方括号内的 [[ ... ]] 子字符串中提取分号字符。

如果我使用 re.search(\[\[.*(\s*;).*\]\]) 我只会得到一个分号。有没有合适的解决方案?

最佳答案

Regex 从来都不是这样的事情的好选择,因为它很容易出错,但以下模式适用于普通情况:

;(?=(?:(?!\[\[).)*\]\])

模式分解:

;                # match literal ";"
(?= # lookahead assertion: assert the following pattern matches:
(?:
(?!\[\[) # as long as we don't find a "[["...
. # ...consume the next character
)* # ...as often as necessary
\]\] # until we find "]]"
)

换句话说,该模式检查分号后是否跟有 ]],但没有跟[[


模式不起作用的字符串示例:

  • ; ]](将匹配)
  • [[ ; "这是文本 [["]](不匹配)

关于Python 正则表达式 - 在子字符串中查找多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540690/

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