仅打印 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
的否定先行
所以我只需要打印介于两者之间的字母让我们说 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
落后于 的否定回顾
(?! )
断言(.*?)
匹配任何内容(非贪婪)(?=o)
断言o
的否定先行