Python | Tkinter 정규 표현식 도구

풀어 주다: 2023-08-09 16:04:10
앞으로
839명이 탐색했습니다.


이번 호에서는 간단한 Tkinter 정규 표현식 도구 세트를 공유하겠습니다. 궁금한 점이 있거나 도움이 되길 바랍니다. 개선이 필요한 부분은 편집자에게 비공개 메시지를 보낼 수 있습니다.
전체 레이아웃:
Python | Tkinter 정규 표현식 도구

함수 코드 소개:

?️‍?

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(&#39;1.0&#39;, &#39;end&#39;)
    text2.delete(&#39;1.0&#39;, &#39;end&#39;)
    text3.delete(&#39;1.0&#39;, &#39;end&#39;)
로그인 후 복사


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

# 正则匹配
def check_regex():
    text3.delete(&#39;1.0&#39;, &#39;end&#39;) 
    re_text = text1.get(&#39;1.0&#39;, &#39;1.end&#39;)
    source_text = text2.get(&#39;1.0&#39;, END)
    try:
        pattern = re.compile(f&#39;{re_text}&#39;)
        result = re.findall(pattern, source_text) 
        if result:
            # 循环输出
            for res in result:
                if res != &#39;&#39;:
                    text3.insert(END, res+&#39;\n&#39;)
        else: 
            text3.delete(&#39;1.0&#39;, &#39;end&#39;)
            text3.insert(&#39;insert&#39;, &#39;匹配结果为空&#39;)
    except:
        text3.delete(&#39;1.0&#39;, &#39;end&#39;)
        text3.insert(&#39;insert&#39;, &#39;匹配失败&#39;)
로그인 후 복사


?️‍? 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当打之年
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿