Mit re
in Python möchte ich alle Zeichen in einer Zeichenfolge, die dem ersten Auftreten eines Unterstrichs vorausgehen, zurückgeben. Außerdem möchte ich, dass die Zeichenfolge, die zurückgegeben wird, in Großbuchstaben und ohne keine nicht-alphanumerischen Zeichen ist.Zurückgeben aller Zeichen vor dem ersten Unterstrich
Zum Beispiel:
AG.av08_binloop_v6 = AGAV08
TL.av1_binloopv2 = TLAV1
Ich bin ziemlich sicher, dass ich weiß, wie eine Zeichenfolge in all string.upper()
Groß mit zurückzukehren, aber ich bin sicher, es gibt mehr Möglichkeiten, um die .
effizient zu entfernen. Jede Hilfe würde sehr geschätzt werden. Ich lerne immer noch regelmäßig Ausdrücke langsam aber sicher. Jeder Tipp wird zu meinen Notizen für zukünftige Verwendung hinzugefügt.
Um weiter zu klären, sind meine obigen Beispiele nicht die tatsächlichen Zeichenfolgen. Die tatsächliche Zeichenfolge würde wie folgt aussehen:
AG.av08_binloop_v6
Mit meinem gewünschten Ausgang suchen, wie:
AGAV08
Und das nächste Beispiel wäre das gleiche. String:
TL.av1_binloopv2
gewünschte Ausgabe:
TLAV1
Nochmals vielen Dank allen für die Hilfe!
+1 "on spec", sieht gut aus, aber ich bin kein Regex-Guru. Edit: Ich würde 're.search' durch' re.match' ersetzen und das erste '^' im Muster löschen ('match' beginnt immer am Anfang des Strings und ist dafür optimiert). – delnan
Während ich die Einfachheit der anderen Antworten mag, wollte ich auch, mit welcher Lösung ich auch immer weiter experimentieren möchte. Dieser passt die Rechnung. Danke Gumbo! – durandal
Nur für zukünftiges Wissen, wie würde dies mit '' re.compile'' geschehen? Ich mag den Einliner-Charakter, aber es wäre gut, für zukünftiges Wissen zu wissen. – durandal