gpt4 book ai didi

python - 如何在 Tkinter 文本搜索方法中使用正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:52 26 4
gpt4 key购买 nike

我想在方括号内找到一个突出显示的区域。这些方括号可以包含任何文本:[A hello world] [B this is a tree] [A tkinter documentation is bad]

我想突出显示括号中带有“A”字符的单词,如下所示: enter image description here

为了获取起始索引和匹配字符的数量,我尝试了这个:

countVar = StringVar()
reg_area = re.compile(r'\[A.*\]')
index = text.search('1.0', reg_area, stopindex=END, count=countVar, regexp = True)

这不起作用,我收到了。

TclError: bad text index "<_sre.SRE_Pattern object at 0x3856d78>"

如何找到所有事件并正确突出显示它们?

最佳答案

你有两个问题。首先,您将位置参数放在错误的顺序中。第一个位置参数应该是模式,第二个位置参数被视为起始索引。由于您的第二个参数是 SRE_Pattern 的实例,因此您会收到错误的文本索引错误。

您需要更改参数的顺序,以便您的第一个参数是模式。接下来的两个参数应该是开始和结束索引。

其次,当您将 regexp 设置为 True 时,您仍然必须将模式作为字符串传递。文本小部件将该字符串解释为正则表达式。您不能传入已编译的正则表达式。

这是一个应该有效的例子:

index = text.search(r'\[A.*\]', "1.0", END, count=countVar, regexp=True)

FWIW,this answer问题Tkinter text highlighting in python给出了一个子类化 Text 类以添加名为 highlight_pattern 的方法的示例。

关于python - 如何在 Tkinter 文本搜索方法中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938404/

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