如何在文本中找到特定文本字符串的位置?
例如,我有文字" Lorem ipsum dolor sit amet,consectetur adipiscing elit。",当我搜索" ipsum"我想找出它的位置。
if "ipsum" in text:
print position
else:
pass
我正在寻找的位置类似于" 1.6" 如果我想更改文本的颜色,它看起来像这样:
text.tag_add("foo", "1.28", "1.39")
然后,为了改变我搜索过的文字的颜色,我需要以某种方式得到它的位置,对吧?我可能错了,但我正在寻找一些例子或指导。 谢谢! :)
答案 0 :(得分:4)
使用Text.search()
功能,例如
text = Text(root)
text.insert(INSERT, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
pos = text.search('ipsum', '1.0', stopindex=END)
print pos
这应输出1.6
。
要突出显示目标字符串,您可以使用tag_add()
和tag_config()
...
root = Tk()
text = Text(root)
text.pack()
text.insert(INSERT, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
target = 'ipsum'
start_pos = text.search(target, '1.0', stopindex=END)
print '{!r}'.format(start_pos)
if start_pos:
end_pos = '{}+{}c'.format(start_pos, len(target))
print '{!r}'.format(end_pos)
text.tag_add('highlight', start_pos, end_pos)
text.tag_config('highlight', foreground='red')
root.mainloop()
如果您想在文本小部件中搜索单词的所有实例,或者多个单词,请查看以下答案:https://stackoverflow.com/a/29316232/21945