[Python-de] zwei regex zu einem verbinden

Reimar Bauer rb.proj at gmail.com
Mi Dez 18 19:42:21 CET 2013


Hi

2013/12/18 Torsten P. <topic2k at googlemail.com>:
> Hallo Gruppe,
>
> ich möchte in einem Text zählen, wieviele Zeichen von '#' oder '0' (XOR) nach einem Punkt folgen. Ich wollte dies mit re.search angehen.
> Wenn ich entweder auf '#' oder '0' prüfe klappts.
>
>     t1 = 'some text .000 more text'
>     t2 = 'some text .### more text'
>

Falls das nur die Fälle sind die in Betracht kommen, würde ich da
keine regex für nehmen.

text.count('0') or text.count('#')

Gruß
Reimar

>     re.search('\.(0*)', t1).groups()    >>> ('000',)
>     re.search('\.(0*)', t2).groups()    >>> ('',)
>     re.search('\.(#*)', t1).groups()    >>> ('',)
>     re.search('\.(#*)', t2).groups()    >>> ('###',)
>
> Nun würde ich aber gerne statt zwei regex nur einen haben. Leider bin ich da nicht erfolgreich. Folgendes habe ich schon probiert:
>
>     re.search('\.(#*)|(0*)', t1).groups()   >  (None, '')
>     re.search('\.(#*)|(0*)', t2).groups()   >  (None, '')
>     re.search('\.(0*)|(#*)', t1).groups()   >  (None, '')
>     re.search('\.(0*)|(#*)', t2).groups()   >  (None, '')
>     re.search('\.(#|0)*', t1).groups()      >  ('0',)
>     re.search('\.(#|0)*', t2).groups()      >  ('#',)
>     re.search('\.(0|#)*', t1).groups()      >  ('0',)
>     re.search('\.(0|#)*', t2).groups()      >  ('#',)
>     re.search('\.(#*|0*)', t1).groups()     >  ('',)
>     re.search('\.(#*|0*)', t2).groups()     >  ('###',)
>     re.search('\.(0*|#*)', t1).groups()     >  ('000',)
>     re.search('\.(0*|#*)', t2).groups()     >  ('',)
>
> Einen Teilerfolg habe ich mit:
>
>>>> re.search('\.(?P<sign>0|[#])(?P<cnt>(?P=sign)*)', t1).groups()
> ('0', '00')
>>>>
>>>> re.search('\.(?P<sign>0|[#])(?P<cnt>(?P=sign)*)', t2).groups()#
> ('#', '##')
>
> Kann mir jemand sagen, wie das richtig sein muss bzw. wo mein Fehler ist?
>
> Danke,
>   Torsten
>
>
> _______________________________________________
> python-de maillist  -  python-de at python.org
> https://mail.python.org/mailman/listinfo/python-de


Mehr Informationen über die Mailingliste python-de