原创:正则表达式练习软件(实时显示的哟!)
小弟笨拙,才学会tkinter的一点点技能,费了好大的功夫才做成这样{:10_250:}目前只是个极简的雏形,后续再优化和添加功能,还望大佬指点指点,提提建议{:10_281:} ,让我接着改进{:10_265:}
不会做gif的动图,贴两张我自己测试的效果图
代码很少,就40行。
from tkinter import *
import re
root = Tk()
#设置正则窗口样式
sb1 = Scrollbar(root)
sb1.grid(row=0,column=1,sticky=NS)
text1 = Text(root,width=100,height=8,yscrollcommand=sb1.set)
text1.grid(row=0,column=0)
sb1.config(command=text1.yview)
#设置待匹配窗口样式
sb2 = Scrollbar(root)
sb2.grid(row=1,column=1,sticky=NS)
text2 = Text(root,width=100,height=40,yscrollcommand=sb2.set)
text2.grid(row=1,column=0,pady=0)
sb2.config(command=text2.yview)
#正则表达式窗口按键触发事件
def text1_insert(event):
text1_info = text1.get(1.0,END)
text2_info = text2.get(1.0,END)
text1_info = fr'{text1_info}'[:-1] #莫名其妙多了一个换行符,这里把它去掉
text2.tag_delete("tag1")
re_list = []
try:
for m in re.finditer(text1_info,text2_info):
start = m.start()
end = m.end()
if start != end:
re_list.append((start,end))
except:
pass
if re_list:
for n,m in re_list:
text2.tag_add("tag1", f"1.0+{n}c", f"1.0+{m}c")
text2.tag_config("tag1", background="yellow", foreground="red")
text1.bind('<KeyRelease>',text1_insert)
mainloop()
既然来了就留个脚印再走哈{:10_281:} 牛逼呀 给你一个赞👍 大裤衩子 发表于 2019-4-17 22:47
给你一个赞👍
{:10_281:} 加油啊 牛! 牛X,太香了。我开发中可以用到 加油
页:
[1]