gpt4 book ai didi

python - 匹配/索引字符串填充随机间隙

转载 作者:行者123 更新时间:2023-11-30 22:16:11 26 4
gpt4 key购买 nike

我正在尝试匹配/索引一个充满空格的字符串。这可以用正则表达式来完成吗?以下是我当前的解决方案:

test = 'abcd---efghi-j-k-l---mnopq-r--st-uvw-x-yz'

def match_gaps(match_string, match_target):
ms = match_string.replace('-','').index(match_target)+1
for c in range(len(match_string)):
if match_string[c] != '-':
ms -= 1
if ms == 0:
endp = ms
while len(match_string[c:endp].replace('-','')) < len(match_target):
endp += 1
return(match_string[c:endp])

print(match_gaps(test, 'klmno'))
output: k-l---mno

感觉很乱...

最佳答案

如果我正确理解您要执行的操作,您希望在匹配中的任何位置都允许破折号,但将它们保留在输出中。

让我们这样做:

import re

test = 'abcd---efghi-j-k-l---mnopq-r--st-uvw-x-yz'

def match_gaps(match_string, match_target):
chars = [re.escape(c) for c in match_target] # allow special-chars
regex = re.compile('-*'.join(chars)) # allow dashes between chars
return regex.findall(match_string)

print(match_gaps(test, 'klmno'))

['k-l---mno']

您可能需要进行一些细微的调整,以便输出正是您想要的,但想法是相同的。唯一有点棘手的部分是 re.escape (这对您来说甚至可能没有必要)。

关于python - 匹配/索引字符串填充随机间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50048494/

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