gpt4 book ai didi

Python:恰好 $n$ [?o] 的正则表达式,至少有一个 [o]

转载 作者:行者123 更新时间:2023-11-28 20:07:59 27 4
gpt4 key购买 nike

我正试图找到正确的 python 正则表达式来解决这个问题:

给定一个由字符 ?_o 组成的字符串,找到长度为 n 的子字符串> 仅包含 ?o 以及至少一个 o

这是我想出来的,但它似乎不起作用:

n = 3
r = re.compile("
(?=[o?]{"+str(n)+","+str(n)+"}) # first find a block of n characters that are either 'o' or '?'
[o?]*o[o?]* # then check if that block has at least one 'o'
, re.VERBOSE")

我认为上面的问题是前瞻正确地找到了一个潜在的 block ,但是 [o?]*o[o?]* 正在贪婪地消耗超出限制的字符第一部分找到的 block 。我希望先行将后续表达式限制在先行匹配的范围内进行匹配,但我想这不是它的工作原理。

我可能会以另一种方式结束,因为对于正则表达式来说,这可能是太多的逻辑,而不是最好的方法,但我想知道如何在单个正则表达式中做到这一点。

最佳答案

你甚至不需要正则表达式。

pieces = s.split('_') # pieces are composed of only ? and o
for piece in pieces:
if 'o' in piece and len(piece) >= n: # piece must have a substring of length n with o in it somewhere
print "found it"
break
else:
print "didn't find it"

关于Python:恰好 $n$ [?o] 的正则表达式,至少有一个 [o],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317955/

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