Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5334

Re: [Python-de] Gruppen in sich wiederholenden Sub-Patterns

From Stefan Schwarzer <sschwarzer@sschwarzer.net>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Gruppen in sich wiederholenden Sub-Patterns
Date 2018-11-16 09:13 +0100
Message-ID <mailman.76.1542356032.6006.python-de@python.org> (permalink)
References <3baad237-6d51-8748-bf15-c9cd66ca5aff@sschwarzer.net> <CA+EaWHtu7aXQCZW+9_DtNZFFFo1vF4Sf741YJyniYO2rZTgVYg@mail.gmail.com> <cb15ba33-dc17-4f6f-5b79-b51d688978fb@sschwarzer.net>

Show all headers | View raw


On 16/11/2018 08.25, Dustin Vanidestine wrote:
>> Gibt es eine Möglichkeit, den regulären Ausdruck so umzuschreiben,
>> dass ich alle gewünschten Gruppen bekomme?
>>
>> Falls nicht, wie würdet ihr das Problem sonst lösen? Mir sind
>> mögliche Ansätze eingefallen, aber die wirken alle ziemlich
>> frickelig.
> 
> So würde ich es machen (Python 3.7):
>>>> import re
>>>> regex = re.compile(r"""\(\w+,\w+\)""",
> re.U).findall("""(ab,cd),(ef,gh),(ij,kl),(mn,op)""")
>>>> regex
> ['(ab,cd)', '(ef,gh)', '(ij,kl)', '(mn,op)']
>>>> regex = re.compile(r"""\(\w+,\w+\)""",
> re.U).findall("""Anfang(ab,cd),(ef,gh),(ij,kl),(mn,op)(andereszeug)""")
>>>> regex
> ['(ab,cd)', '(ef,gh)', '(ij,kl)', '(mn,op)']

Das Problem hierbei ist, dass die Kommas zwischen den
eingeklammerten Gruppen Bestandteil der Syntax sind. Es
soll zwischen den Gruppen nicht irgendetwas beliebiges
stehen können.

Ansonsten wäre `findall` natürlich das Mittel der Wahl.

Viele Grüße
Stefan

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] Gruppen in sich wiederholenden Sub-Patterns Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2018-11-16 09:13 +0100

csiph-web