附带了帮助信息的工具源代码
"""
__author__ : weilinlin
__file__ : RegexTool
__time__ : 2020-12-16
"""
from tkinter import *
from tkinter import messagebox, ttk
import re
root = Tk()
root.title("RegexTool")
root.resizable(0, 0)
def init():
"""
构造GUI初始化页面
TODO: 长度最大匹配长度判断逻辑尚未补充
TODO: 常用正则表达式列表
:return:
"""
button00 = Button(root, width=12, text="( )", command=lambda: (
text1.insert('insert', "()"), text4.delete("1.0", END), text4.insert("insert", "(re): 对正则表达式分组并记住匹配的文本")))
button01 = Button(root, width=12, text="[ ]", command=lambda: (
text1.insert('insert', "[]"), text4.delete("1.0", END), text4.insert("insert", "[...]: 用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'")))
button02 = Button(root, width=12, text="{ }", command=lambda: (text1.insert('insert', "{}"), text4.delete("1.0", END),
text4.insert("insert",
"""re{ n}: 精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。\nre{ n,} 匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。""")))
label03 = Label(root, width=12, text="长度")
button04 = Button(root, width=12, text="{1, 15}", command=lambda: (
text1.insert('insert', "{1,15}"), text4.delete("1.0", END), text4.insert("insert", "re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式")))
button10 = Button(root, width=12, text="*",
command=lambda: (text1.insert('insert', "*"), text4.delete("1.0", END), text4.insert("insert", "匹配0个或多个的表达式。")))
button11 = Button(root, width=12, text="+",
command=lambda: (text1.insert('insert', "+"), text4.delete("1.0", END), text4.insert("insert", "匹配1个或多个的表达式。")))
button12 = Button(root, width=12, text="?", command=lambda: (
text1.insert('insert', "?"), text4.delete("1.0", END), text4.insert("insert", "匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式。")))
button13 = Button(root, width=12, text=".", command=lambda: (
text1.insert('insert', "."), text4.delete("1.0", END), text4.insert("insert", "匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。")))
button14 = Button(root, width=12, text="-", command=lambda: (text1.insert('insert', "-"), text4.delete("1.0", END),
text4.insert("insert",
"标识两者之间的内容也可以被匹配,连接作用;如[0-9],匹配可以匹配0,1,2,3,4,5,6,7,8,9。")))
button20 = Button(root, width=12, text="0-9", command=lambda: (
text1.insert('insert', "0-9"), text4.delete("1.0", END), text4.insert("insert", "匹配任何数字。类似于 [0123456789]")))
button21 = Button(root, width=12, text="a-z", command=lambda: (
text1.insert('insert', "a-z"), text4.delete("1.0", END), text4.insert(