[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]