我试图创建一个程序,它接受一个给定的文本,检查以查看整个文本中的哪些索引(")并在引号之间打印任何内容(" )即" xyz" blablabla" abc"。在这种情况下,将打印0到4之间的xyz和16到20之间的abc。我已经让索引部分工作,但似乎无法找到在这些索引范围内打印任何内容的方法。这是我的代码:
text = '"bleed" seed "deed"'
index = 0
a = 0
find = int(input("Would you like to find all the links in the file?\n If yes, enter 1: "))
def Link_Finder(a):
index = 0
if find == 1:
while index < len(text):
index = text.find('"', index)
if index == -1:
break
print('" found at', index)
index = index + 2
return index
Link_Finder(a)
print(text[index:])
我只打印索引以供我自己参考。我对Python很陌生,所以我还不熟悉复杂的东西。
在我看来,这样做的一种方法是返回索引值,然后使用返回的值打印所需的文本。
感谢。
答案 0 :(得分:1)
如果您不介意使用正则表达式,我认为这是一个更简单的解决方案:
import re
print(re.findall(r'"([^"]*)"', text))
如果没有,您可以使用link_finder
功能:
def link_finder(s):
index = 0
while index < len(s):
index = s.find('"', index)
if index == -1:
break
yield index
index = index + 2
然后成对遍历结果
results = list(link_finder(text))
for start, end in zip(results[::2], results[1::2]):
print text[start+1:end]