Ich versuche, einen einfachen Texteditor mit Python zu machen. Ich versuche jetzt eine Suchfunktion zu machen. Das ist, was ich habe:Python Suche Funktion wählt eine Übereinstimmung pro Zeile
def Find():
text = textArea.get('1.0', END+'-1c').lower()
input = simpledialog.askstring("Find", "Enter text to find...").lower()
startindex = []
endindex = []
lines = 0
if input in text:
text = textArea.get('1.0', END+'-1c').lower().splitlines()
for var in text:
character = text[lines].index(input)
start = str(lines + 1) + '.' + str(character)
startindex.append(start)
end = str(lines + 1) + '.' + str(character + int(len(input)))
endindex.append(end)
textArea.tag_add('select', startindex[lines], endindex[lines])
lines += 1
textArea.tag_config('select', background = 'green')
Dies wird erfolgreich Wörter hervorheben, die die Benutzereingabe mit einem grünen Hintergrund übereinstimmen. Aber das Problem ist, dass es nur die erste Übereinstimmung jeder Zeile hervorhebt, wie Sie here sehen können.
Ich möchte es alle Treffer hervorheben.
Voll Code hier: https://pastebin.com/BkuXN5pk
Warum nicht das 're' Modul verwenden? –
@ I'L'I Ich bin ein Noob zu Python, können Sie erklären, was das ist –
https://docs.python.org/3/howto/regex.html –