Python | Tkinter正则表达式工具

发布: 2023-08-09 16:04:10
转载
948人浏览过


本期给大家分享一套简易Tkinter正则表达式工具,希望对你有所帮助,如有疑问或者需要改进的地方可以私信小编。
整体布局:
Python | Tkinter正则表达式工具

功能代码介绍:

 ?️‍? 1. 导入tkinter和re模块

from tkinter import *
from tkinter import messagebox, ttk
import re
登录后复制


 ?️‍? 2. 设置窗口居中
# 窗口居屏幕中央
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
root.geometry(alignstr)
登录后复制


 ?️‍? 3. 设置lable、text、button布局
font_size = 10
label1 = Label(root, text="常用正则表达式:",font=(StringVar(), font_size),pady=10)
label1.grid(row=1, column=0, sticky=W,padx=5, pady=5)

# 功能按钮
button2 = Button(root, width=15, text="测试", command=check_regex)
button3 = Button(root, width=15, text="清空所有", command=clear_all)
button2.grid(row=5, column=1, padx=5, pady=5)
button3.grid(row=5, column=2, padx=5, pady=5)

label2 = Label(root, text="正则表达式:", font=(StringVar(), font_size), pady=10)
label3 = Label(root, text="目标字符串:", font=(StringVar(), font_size), pady=10)
label4 = Label(root, text="匹配结果:", font=(StringVar(), font_size), pady=10)
label2.grid(row=2, column=0, sticky=W, padx=5)
label3.grid(row=3, column=0, sticky=W, padx=5)
label4.grid(row=4, column=0, sticky=W, padx=5)
# 设置默认项
text1 = Text(root, width=47, height=5, font=(StringVar(), font_size))
text1.insert('1.0', dic_tmp[comboxlist.get()])
text2 = Text(root, width=47, height=10, font=(StringVar(), font_size))
text3 = Text(root, width=47, height=10, font=(StringVar(), font_size))
text1.grid(row=2, column=1,columnspan=3, pady=10)
text2.grid(row=3, column=1,columnspan=3, pady=10)
text3.grid(row=4, column=1,columnspan=3, pady=10)
登录后复制


 ?️‍? 4. 设置下拉列表框
# 下拉选择框
def set_combox():
    comboxlist["values"] = list(dic_tmp.keys())
    comboxlist.current(0) 
    comboxlist.bind("<<ComboboxSelected>>", get_combox) 
    comboxlist.grid(row=1, column=1, pady=10)
登录后复制


Python | Tkinter正则表达式工具


?️‍? 5. 清空文本框

# 清空三个文本框
def clear_all():
    text1.delete('1.0', 'end')
    text2.delete('1.0', 'end')
    text3.delete('1.0', 'end')
登录后复制


?️‍? 6. 正则匹配结果

# 正则匹配
def check_regex():
    text3.delete('1.0', 'end') 
    re_text = text1.get('1.0', '1.end')
    source_text = text2.get('1.0', END)
    try:
        pattern = re.compile(f'{re_text}')
        result = re.findall(pattern, source_text) 
        if result:
            # 循环输出
            for res in result:
                if res != '':
                    text3.insert(END, res+'\n')
        else: 
            text3.delete('1.0', 'end')
            text3.insert('insert', '匹配结果为空')
    except:
        text3.delete('1.0', 'end')
        text3.insert('insert', '匹配失败')
登录后复制


?️‍? 7. 设置滚动条

# 创建滚动条
scroll2 = Scrollbar(orient=VERTICAL,command=text2.yview)
text2.config(yscrollcommand = scroll2.set)
scroll2.grid(row=3,column=4, pady=10, sticky=S+W+E+N)

# 创建滚动条
scroll3 = Scrollbar(orient=VERTICAL,command=text3.yview)
text3.config(yscrollcommand = scroll3.set)
scroll3.grid(row=4,column=4, pady=10, sticky=S+W+E+N)
登录后复制


?️‍? 8. 几个示例

数字:

Python | Tkinter正则表达式工具


字母:

Python | Tkinter正则表达式工具


中文:

Python | Tkinter正则表达式工具


大写字母:

Python | Tkinter正则表达式工具


以上正则字典大家可以根据自己的需求进行修改。

以上就是Python | Tkinter正则表达式工具的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:Python当打之年网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号