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

Printing only letters that are between 2 characters in python

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

string = "ovdasdaso je ovakvo okovano okej"

我需要获取“vadasdas”、“vakv”、“k”、“”

我发现这段代码在找到 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))

输出:

['vdasdas', 'vakv', 'k', 'van']

正则表达式解释:

  • (?<=o) 断言 o 落后于
  • 的否定回顾
  • (?! ) 断言 (empty space) 不超前的否定前瞻
  • (.*?) 匹配任何内容(非贪婪)
  • (?=o) 断言 o 的否定先行