[Python-de] Re: regex: Ausdruck matches wen auf einer Zeil e, fails when "freespacing"
[email protected] (Stefan Ram) 8 Dec 2022 11:01:41 GMT
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | Stefan Ram |
| Message-ID | <[email protected]> |
Im Usenet gelten 72 Zeichen als Obergrenze für Zeilenlängen. Meiner Meinung nach sollte diese Grenze auch für Betreffe gelten. Obiger Betreff sieht so aus: [Python-de] regex: Ausdruck matches wen auf einer Zeile, fails when "freespacing" (ca. 82 Zeichen), in manchen (älteren) Newsreadern sogar: Re: =?utf-8?q?=5BPython-de=5D_regex=3A_Ausdruck_matches_wen_auf_einer_Zeile=2C_fails_when_=22freespacing=22?= (zirka 110 Zeichen). Damit wird er bei Leuten, die lange Zeilen im Betreff als Spam ansehen, nicht mehr sichtbar. (Manche Arten von Spam im Usenet verwenden oft ziemlich lange Zeilen im Betreff und können daran gut ausgefiltert werden.) Mit seiner Mischung aus Englisch und Deutsch sowie "wen" ist der Betreff auch nicht gerade eine Glanzleistung seines Autors. Man hätte beispielsweise Aufteilung eines regulaeren Ausdrucks als Betreff verwenden können. robert rottermann <[email protected]> writes: >Dieser Ausdruck funktioniert wenn er auf eine Zeile geschrieben wird. Also: >sp0 = '^\[[^\]\r\n]+](?:\r?\n(?:[^\[r\n].*)?)*' >Nicht aber wenn er "free spacing" geschrieben ist: >sp2 = """ >^\[[^\]\r\n]+] # match a section header >(?: # followed by the rest of the section > \r?\n # match a line break sequence > (?: # after Each line starts match > [^[\r\n] # Any character except "\[" or line break > .* # match rest of the line > )? # Group is optional to match empty lines >)* # Continue until end of section >""" Nach Äquivalenztransformation des Quelltextes (ohne inhaltliche Prüfung der Zeichenfolge): no_left_bracket_or_line_break = fr'[^\[r\n]' rest = fr'.*' line = no_left_bracket_or_line_break + rest optional_line = fr'(?:{line})?' line_break_sequence = fr'\r?\n' entry = line_break_sequence + optional_line repeated_entry = fr'(?:{entry})*' section_header = fr'^\[[^\]\r\n]+]' sp2 = section_header + repeated_entry . _______________________________________________ python-de Mailingliste -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]