Ich habe ABBACBAB
Jetzt möchte ich alle Zeichen nach A identifizieren, also die Gruppe: BB, CB, B
Wie mache ich das?
Zeichenkette nach zeichenkette identifizieren
Also ich habe das mal so gemacht:
Aber das ist nicht was gesucht wird in:
Code: Alles auswählen
def result():
s = 'ACAABAACAAABACDBADDDFSDDDFFSSSASDAFAAACBAAAFASD'
result = s.split("AAA")
# compete the pattern below
# pattern =
# for item in re.finditer(pattern, s):
# identify the group number below.
# result.append(item.group())
return result
Code: Alles auswählen
def result():
s = 'ACAABAACAAABACDBADDDFSDDDFFSSSASDAFAAACBAAAFASD'
# compete the pattern below
pattern =
for item in re.finditer(pattern, s):
# identify the group number below.
result.append(item.group())
return result
Folgendes funktioniert nicht:
Code: Alles auswählen
def result():
s = 'ACAABAACAAABACDBADDDFSDDDFFSSSASDAFAAACBAAAFASD'
result = [] # s.split("AAA")
# compete the pattern below
pattern = r"[AAA]"
for item in re.finditer(pattern, s):
# identify the group number below.
result.append(item.group())
return result
Was bedeutet "die Antwort wird nicht akzeptiert?" Wer soll denn die Antwort akzeptieren? Was ist denn Dein wirkliches Problem, das Du lösen möchtest? Was ist die Fehlermeldung die Du bekommst? Wie weicht das Ergebnis, das Du bekommst, von dem ab, das Du erwartest?
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Brando: Noch mal: wie soll denn das Ergebnis aussehen? Denn das wissen wir nicht wirklich. Du hast das im ersten Beitrag beschrieben für "A" und nun hast Du plötzlich Code in dem Du "AAA" schreibst. Was wäre *da* das Ergebnis und wie lautet überhaupt die Aufgabenstellung?
Der reguläre Ausdruck "[AAA]" macht wenig Sinn, denn das ist das gleiche wie "[A]" und das ist das gleiche wie "A". Das sollte Dir eigentlich klar sein, wenn Du Dich mit regulären Ausdrücken auseinandergesetzt hast. Hast Du das? Was sind da die Quellen? Hast Du die Dokumentation zum `re`-Modul durchgearbeitet? Es gibt in der Python-Dokumentation auch ein HOWTO zu regulären Ausdrücken — hast Du das auch durchgearbeitet? Hast Du mal interaktiv mit so etwas wie https://regex101.com/ gearbeitet? Das kann hilfreich beim Entwickeln von regulären Ausdrücken sein. Es gibt da auch noch andere Webseiten und auch Desktopprogramme für so etwas.
Der reguläre Ausdruck "[AAA]" macht wenig Sinn, denn das ist das gleiche wie "[A]" und das ist das gleiche wie "A". Das sollte Dir eigentlich klar sein, wenn Du Dich mit regulären Ausdrücken auseinandergesetzt hast. Hast Du das? Was sind da die Quellen? Hast Du die Dokumentation zum `re`-Modul durchgearbeitet? Es gibt in der Python-Dokumentation auch ein HOWTO zu regulären Ausdrücken — hast Du das auch durchgearbeitet? Hast Du mal interaktiv mit so etwas wie https://regex101.com/ gearbeitet? Das kann hilfreich beim Entwickeln von regulären Ausdrücken sein. Es gibt da auch noch andere Webseiten und auch Desktopprogramme für so etwas.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Brando: Jetzt sollen drei As plötzlich *ausgeschlossen* werden — das hat ja noch weniger mit den beiden Varianten aus den Beiträgen bisher zu tun. Man kann nicht helfen wenn Du nicht mit der tatsächlichen Problemstellung heraus rückst. Vollständig und von Dir aus, ohne das man immer wieder nachfragen muss. Und dann doch wieder nicht weiss, ob Du jetzt das tatsächliche, vollständige Problem präsentiert hast.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Das Problem ist dadurch charakterisiert, dass alle Zeichen vor drei AAA ausgegeben werden sollen. Folgender Ansatz funktioniert auch nicht.
Code: Alles auswählen
import re
s = 'ACAABAACAAABACDBADDDFSDDDFFSSSASDAFAAACBAAAFASD'
result = [] # s.split("AAA")
# compete the pattern below
pattern = r"((?!([A]{3})))"
for item in re.finditer(pattern, s):
# identify the group number below.
result.append(item.group(0))
print (result)
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Brando: Das einfachste scheint mir da immer noch die `split()`-Methode auf Zeichenketten zu sein. Falls es `re` sein muss, kann man das im Grunde genau so wie Du es im Satz schreibst als regex ausdrücken: Alle Zeichen vor drei "A". Und das ist auch ein recht einfacher Ausdruck, ohne Konstrukte wie "(!?…)".
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman