gpt4 book ai didi

python - 讲解Tkinter文本搜索方法

转载 作者:太空狗 更新时间:2023-10-29 21:34:44 25 4
gpt4 key购买 nike

我不太明白 text.search 方法是如何工作的。例如有一句话:Today a red car appeared in the park. 我需要找到 a red car 序列并突出显示它。找到了,但这是我突出显示的样子:

enter image description here

enter image description here

我在句子中使用了 self.text.search(word, start, stopindex=END)。看起来搜索方法的工作原理与 python 的正则表达式搜索完全一样。添加 exact=True 没有任何改变,因为它是默认行为,这就是为什么我不明白 exact=True 的实际含义。如何使 红色汽车 正确高亮显示?

最佳答案

搜索方法返回起始索引处或之后的第一个匹配项的索引,以及可选的匹配字符数。您有责任突出显示使用此信息发现的内容。

例如,考虑以下搜索:

countVar = tk.StringVar()
pos = text.search("a red car", "1.0", stopindex="end", count=countVar)

如果找到匹配,pos 将包含匹配的第一个字符的索引,countVar 将包含匹配的字符数。您可以使用此信息通过使用“index + N chars”形式的索引或简写“index + Nc”来突出匹配。例如,如果 pos 为 2.6,count 为 9,则匹配的最后一个字符的索引将为 2.6+9c

这样,假设您已经配置了一个名为“search”的标签(例如:text.tag_configure("search", background="green")),您可以添加这个标签像这样在比赛开始和结束时:

text.tag_add("search", pos, "%s + %sc" (pos, countVar.get()))

要突出显示所有匹配项,只需将搜索命令放入一个循环中,并将起始位置调整为上一个匹配项结束后的一个字符。

关于python - 讲解Tkinter文本搜索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com