Ich habe einen Bot, der eine Reihe von verschiedenen Befehlen übernimmt und ich versuche skalieren seine Fähigkeit, Argumente für alle diese Befehle zu nehmen.Regex Infitine Capture-Gruppen nach einer bestimmten Zeichenfolge
Dies ist die Syntax:
!action db_table mandatory_arg arg1 arg2 arg3...
Im Moment habe ich diese funktional, aber un-skalierbare regex für die Verarbeitung von Befehlen:
^!(\S*)\s?(\S*)\s?(\S*)\s?(\S*)\s?(\S*)\s?(\S*)\s?(\S*)\s?(\S*)$
Es funktioniert, aber es ist nicht so toll und es ist offensichtlich begrenzt auf Wieviele \ S * füge ich da rein.
Also wie kann ich eine unbegrenzte Anzahl von Argumenten in der folgenden Zeichenfolge übereinstimmen?
Ich habe versucht, einen Lookbehind zu verwenden, aber es funktioniert nur für das erste Spiel. Ich habe auch versucht, den ersten Teil vollständig zu machen, aber das funktioniert nur für das erste Argument, da die anderen auch nach dem spezifischen Ignorieren suchen.
Schließlich gab ich auch \ K eine Aufnahme, aber es hat nicht geklappt.
Warum nicht '.split()'? – Jan
Verwenden Sie die PyPi Regex-Bibliothek? –
Regex kann keine unbegrenzte Anzahl von Strings erfassen. Warum teilst du deine Zeichenfolge nicht einfach in Leerzeichen? –