編程學習網 > 編程語言 > Python > python tk教程(Tkinter正則表達式工具)
2023
06-26

python tk教程(Tkinter正則表達式工具)

本期給大家分享一套簡易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)



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 tk教程(Tkinter正則表達式工具)的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取