ich habe ein String-Objekt.
In diesem String kommen nur die Zeichen '+' oder '-' vor, also niemals andere.
Das String-Objekt selber hat keine feste Länge.
Mein Ziel ist es, innerhalb des String-Objektes nach bestimmten Mustern zu suchen und diese dann zu zählen bzw. zu ersetzen.
Mir ist durchaus bewusst, dass count() in meinem Fall nicht zum gewünschten Ergebnis führen kann, da diese Funktion
Zeichenweise vorgeht und somit zum Beispiel die Zeichenkombination '+-+-+' nicht als zwei Treffer erkennt.
Erkannt werden : 1x '+-+' und '-+' bleibt dann zum weiterzählen übrig.
Sorry, auch wenn das, was ich als Ergebnis haben möchte, sehr einfach umsetzbar wäre, ist mir kein brauchbarer
Lösungsansatz hierzu eingefallen. Für ein wenig Hilfe wäre ich daher sehr dankbar.
Ich hätte da auch noch ein zweites Problem mit der Funktion replace(), welches ähnlich gelagert ist.
Sollte die Lösung von dem Problem count() nicht adaptierbar auf replace() sein, bitte ich auch hier um ein wenig Hilfe.
Vielen Dank.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# String = '++-+++-++++---++++-+++--+-+-+-++++++-+-+++'
# Muster = '+-+'
# Gewünschtes Ergebnis : '++-+++-++++---++++-+++--+-+-+-++++++-+-+++'
# ..........................|...|...........|......|.|.|......|.|...
# ..........................1...2...........3......4.5.6......7.8...
# Versuch mit count()
a = '++-+++-++++---++++-+++--+-+-+-++++++-+-+++'
e = a.count('+-+') # Ergebnis : e = 6 und das ist leider != 8
# Versuch mit replace()
b = a.replace('+-+', 'x-x')
# Ergebnis : b = '+x-x+x-x+++---+++x-x++--x-x-x-x++++x-x-+++'
# gewollt : b = '+x-x+x-x+++---+++x-x++--x-x-x-x++++x-x-x++'
# .......................................................|