Regex 在python中仅打印2个字符之间的字母

Regex 在python中仅打印2个字符之间的字母,regex,string,loops,python-3.8,Regex,String,Loops,Python 3.8,所以我只需要打印介于两者之间的字母,如果我输入 string = "ovdasdaso je ovakvo okovano okej" 我需要得到“vadasdas”,“vakv”,“k” 我发现这段代码,当它找到o时开始写文本,当它找到另一个o时停止,但我不知道如何循环它,这样它就可以再做一次。代码如下: start_marker = end_marker = 'o' string = "ovdasdaso je ovakvo okovano okej"

所以我只需要打印介于两者之间的字母,如果我输入

string = "ovdasdaso je ovakvo okovano okej"
我需要得到“vadasdas”,“vakv”,“k”

我发现这段代码,当它找到o时开始写文本,当它找到另一个o时停止,但我不知道如何循环它,这样它就可以再做一次。代码如下:

start_marker = end_marker = 'o'
string = "ovdasdaso je ovakvo okovano okej"
start = string.index(start_marker) + len(start_marker)
end = string.index(end_marker, start + 1)
p=string[start:end]

print(string)
如果你有任何较短的解决方案,这将是伟大的,以及,但主要是我只需要一种方式来循环通过这一个

import re

string = "ovdasdaso je ovakvo okovano okej"
print(re.findall(r"(?<=o)(?! )(.*?)(?=o)", string))

正则表达式解释:


  • (?您接受的解决方案并没有根据您的问题给出您想要的结果。@尼克:的确如此,但如果您认为您得到了更好的解决方案,请随意发布。答案数组中的第四个值是“van”。在您的问题中,第四个答案是“”(空格)
    
    ['vdasdas', 'vakv', 'k', 'van']