Gibt es Eigentlich eine Funktion im string Modul, die mir, wenn ein Wort oder Buchstabe in einem String öfters vorkommt, eine Liste von allen Indexen der Stellen wo der gesuchte String vorkommt?
cu
Simon
string
-
- User
- Beiträge: 120
- Registriert: Dienstag 8. Oktober 2002, 19:04
- Wohnort: Dinslaken
- Kontaktdaten:
Also bei schnellen durchgucken des String-Moduls hab ich auch nichts gefunden!
Ich hab noch eine Frage, irgendwie verstehe ich deine Frage aber auch nicht ganz
Also du hast ein String s="Ich bin der String" und da soll mit einer Funktion eine Liste erstelt werden, wie oft das Wort 'String' in dem String s vorkommt, also quasi liste=["11,17"], das wäre dr Bereich des Wortes String?
Ich hab noch eine Frage, irgendwie verstehe ich deine Frage aber auch nicht ganz
Also du hast ein String s="Ich bin der String" und da soll mit einer Funktion eine Liste erstelt werden, wie oft das Wort 'String' in dem String s vorkommt, also quasi liste=["11,17"], das wäre dr Bereich des Wortes String?
Hi, einfach nachschauen . Soweit ich weiß, nicht. Du kannst mit string.find zwar die Position der ersten Übereinstimmung finden, aber nicht mehr. Also muss man sich selber was definieren:
Code: Alles auswählen
def match (text,muster):
if muster == "":
return []
tl = len(text)
ml = len(muster)
erg=[]
for i in xrange(0,tl-ml+1,1):
if text[i: (i + ml)] == muster: erg.append(i)
return erg
Zuletzt geändert von Milan am Mittwoch 25. Juni 2003, 16:25, insgesamt 1-mal geändert.
@Reggid, das dürfte das sein, was ich jedenfalls auch verstanden hab und man allgemein pattern matching nennt . Allerdings wird dabei nur der Startindex angegeben und das ohne ", sonst wäre die Angabe ja wieder ein String statt ein Index.
Man kann bei string.find() angeben, ab welcher Position gesucht werden soll.
Ausgabe: 2 16 24 31 40 47 54 61
Jan
Code: Alles auswählen
fisch = "Fischer Fritz fischt frische Fische, frische Fische fischt Fischer Fritz!"
pos = -1
while 1:
pos = fisch.find("sch",pos+1)
if pos < 0: break
print pos,
Jan