Hi Leute,
ich habe ein Problem. Und zwar will ich aus einem sehr unübersichtlichen String etwas rausfiltern. Ich weiss, mit was es anfängt und mit was es aufhört. Aber nicht, was dazwischen ist.
Zum Beispiel:
"XXXXXXXXXXXaaabbbcccXXXXXXXXXXXXX"
wobei sich "bbb" zu irgendetwas ändert. XXXX sind immer neue verschiedene unbekannte, die unwichtig sind.
Es ist nicht so einfach, dass ich das mit .split machen kann, oder doch?
Im Prinzip brauch ich ein "grep aaa*ccc".
Sollte jedoch auf Win32 auch funktionieren,deshalb ist das nicht möglich ^^.
Mit welcher Funktion kann ich das machen ? Ich hab jetzt google lange gequäled, aber re und string können das anscheinend nicht oder mir ist eine spezielle Funktion entgangen.
Danke für alle Antworten,
Mfg,
Kolazomai
String: Wildcard ?!
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Also wenn der gewünschte Teil immer zwischen "aaa" und "ccc" liegt, geht das schon mit split:
Mit einer Regex natürlich auch, Geschmackssache 
Gruß, mawe
Also wenn der gewünschte Teil immer zwischen "aaa" und "ccc" liegt, geht das schon mit split:
Code: Alles auswählen
s = [
"kfafhgagkföafkaaaeinscccadrekrjakerjl",
"aksfjAFDaerjlaaazweicccEARaeRErearkr",
"AAERYXDXEAaaadreicccAERKJAKJA"
]
for line in s:
text = line.split("aaa")[1].split("ccc")[0]
print text
# oder: print "aaa%sbbb" % text

Gruß, mawe
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eine Regex, jaaa!mawe hat geschrieben:Mit einer Regex natürlich auch, Geschmackssache
Code: Alles auswählen
import re
s = [
"kfafhgagkföafkaaaeinscccadrekrjakerjl",
"aksfjAFDaerjlaaazweicccEARaeRErearkr",
"AAERYXDXEAaaadreicccAERKJAKJA"
]
for line in s:
text = re.findall(r'aaa(.*)ccc', line)[0]
print text
# oder: print "aaa%(text)sccc" % locals()
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice