gpt4 book ai didi

由多个定界符分割的 Python 字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:36 24 4
gpt4 key购买 nike

给定一个字符串:s = FFFFRRFFFFFFFPPRRRRRRLLRLLRLLLPPFPPLPPLPPLFPPFFPFLRPFFRRLLRPFPRFFFFFFFLFDRRFRRFFFFFFFFFRQEE

分隔符为PQDE

我希望能够根据这些字符拆分字符串。

基于:Is it possible to split a string on multiple delimiters in order?

我有以下内容

def splits(s,seps):
l,_,r = s.partition(seps[0])
if len(seps) == 1:
return [l,r]
return [l] + splits(r,seps[1:])

seps = ['P', 'D', 'Q', 'E']

sequences = splits(s, seps)

这给了我:

['FFFFRRFFFFFFF',
'PRRRRRRLLRLLRLLLPPFPPLPPLPPLFPPFFPFLRPFFRRLLRPFPRFFFFFFFLF',
'RRFRRFFFFFFFFR',
'',
'E']

我们可以看到第二个条目有很多 P

我想要的是最后一组 P 之间出现的字符,而不是第一次出现的字符(即 RFFFFFFFFLF)。

此外,定界字符的出现顺序也不固定。

正在寻找有关如何实现这一目标的解决方案/提示?

更新:期望的输出,这些定界符之间的所有字符串集(类似于显示的)但遵守上述最后一次出现的条件

更新 2:预期输出

['FFFFRRFFFFFFF',
'RFFFFFFFLF', # << this is where the output differs
'RRFRRFFFFFFFFR',
'',
''] # << the last E is 2 consecutive E with no other letters, hence should be empty

最佳答案

听起来您想按从第一个角色出现到最后一个出现的顺序拆分。

([PDQE])(?:.*\1)?

有一个try with split pattern at regex101和一个 PHP Demo at 3v4l.org (在 Python 中应该类似)。

关于由多个定界符分割的 Python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617594/

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