Python bietet eine Markierung ( re.X
oder re.VERBOSE
), die zulässig ist Annotation regulärer Ausdrücke:
Mit der automatischen String-Verkettung könnten Sie jedoch grundsätzlich dasselbe erreichen:
%Vor%Ich glaube nicht, dass ich die letztgenannte Form wirklich benutzt habe, aber (IMHO) macht es einen leichter lesbaren Regex (ich muss nicht herausfinden, welcher Whitespace maskiert wurde und was Leerzeichen werden ignoriert ... etc. etc.) und meine Kommentare werden von meinem Texteditor als Kommentare formatiert. Gibt es einen Grund, ersteres dem letzteren oder Visa-Vers vorzuziehen? Oder ist das wirklich ein Tomaten-Tomaten-Problem?
Ich würde sagen, es ist Tomaten-Tomahto. Das Flag "x" für den regulären Ausdruck ist nicht exklusiv für Python und kann in Sprachen, in denen die Verkettungsoperation ausführlicher ist, sinnvoller sein (stellen Sie sich vor, dass +
überall zum Rauschen hinzugefügt wird).
Ich bedenke auch die Tatsache, dass es Sie dazu zwingt, richtig anzugeben, welcher Whitespace Teil des Ausdrucks ist, als eine positive Sache, da er jede Mehrdeutigkeit beseitigt und es schwierig macht, in Whitespaces enthaltene Rexes zu übersehen.
Ein letztes Argument ist, dass Sie das exakte Muster in eine andere Sprache kopieren können, die die gleiche Flagge hat, und es wird ohne viel Aufwand funktionieren. Im letzteren Fall müsste ich viele r
s und Apostrophe entfernen.
Übrigens könnte man mit immer die Option re.X
verketten.
Tags und Links python regex annotations comments