Как можно реализовать конечный автомат для строки полученной из entry?

Вообщем-то, пусть у нас будет виджет entry, в него я ввожу строку, она должна иметь такой вид: [a-z,A-z,А-я, а-я, 0-9], причём первый символ только любая буква=Radiobutton(varibale=[a-z,A-z,А-я, а-я, 0-9],value=[a-z,A-z,А-я, а-я, 0-9]). Ниже схема, которую я сделал для автомата. Пытался делать валидацией, но плохо понимаю как она работает. Попытка решения.

#"" = Radiobutton(variable = "", value = "")
from tkinter import *
import re
root = Tk()
root.title('main')
root.geometry('200x200')


stage = 1

def start(new_val):
    global stage, e1, l1

    l1["text"] = f"stage - {stage}"

    if stage == 1:
        result = re.match("[a-zа-я]", new_val)
        if result is not None:
            stage += 1
        return result is not None
    elif stage == 2:
        result = re.match("[A-zА-я0-9_=]{2,}", new_val)
        if new_val[-1] == "=":
            stage+=1
        return result is not None and result.group() == new_val
        
    elif stage in [3,4,5,6,7,8,9,10,11,12,13,14,15]:
        pattern = r"\=Radiobutton("
        result = re.match(pattern[:stage], new_val[-(stage - 1):])
        if result is not None:
            stage += 1
        return result is not None
    

check = (root.register(start), "%P")

e1 = Entry(validate="key", validatecommand=check)
e1.place(x=50,y=50)

l1 = Label(text = f'stage - {stage}')
l1.place(x=50,y=100)

root.mainloop()

введите сюда описание изображения


Ответы (0 шт):