Zurückgeben aller Zeichen vor dem ersten Unterstrich

7

Mit re in Python möchte ich alle Zeichen in einer Zeichenfolge zurückgeben, die vor dem ersten Auftreten eines Unterstrichs stehen. Außerdem möchte ich, dass die Zeichenfolge, die zurückgegeben wird, in Großbuchstaben und ohne keine nicht alphanumerischen Zeichen ist.

Zum Beispiel:

%Vor%

Ich bin mir ziemlich sicher, dass ich eine Zeichenfolge in Großbuchstaben mit string.upper() zurückgeben kann, aber ich bin mir sicher, dass es mehrere Möglichkeiten gibt, . 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 verdeutlichen, sind meine obigen Beispiele nicht die eigentlichen Strings. Die tatsächliche Zeichenfolge würde wie folgt aussehen:

%Vor%

Mit meiner gewünschten Ausgabe wie aussehen:

%Vor%

Und das nächste Beispiel wäre das gleiche. Zeichenfolge:

%Vor%

Gewünschte Ausgabe:

%Vor%

Nochmals vielen Dank für die Hilfe!

    
durandal 21.09.2010, 16:31
quelle

6 Antworten

7

Versuchen Sie Folgendes:

%Vor%     
Gumbo 21.09.2010, 16:37
quelle
20

Auch ohne re :

%Vor%     
eumiro 21.09.2010 16:33
quelle
2

Sie müssen dafür re nicht verwenden. Einfache Zeichenfolgenoperationen würden basierend auf Ihren Anforderungen ausreichen:

%Vor%

Oder wenn Sie unbedingt re verwenden müssen:

%Vor%     
jathanism 21.09.2010 16:36
quelle
2

Da jeder seine bevorzugte Implementierung angibt, hier ist meine, die re nicht verwendet:

%Vor%

Ich setze .upper() auf die Außenseite des Generators, so dass es nur einmal aufgerufen wird.

    
Steven Rumbalski 21.09.2010 18:02
quelle
2

Er, nur zum Spaß, eine weitere Option, um Text vor dem ersten Unterstrich zu erhalten:

%Vor%

Also könnte alles in einer Zeile sein:

%Vor%     
Etienne 21.09.2010 18:50
quelle
1

importieren Sie erneut

re ("[^ A-Z \ d]", "", yourstr.split ('_', 1) [0] .uper ())

    
Daniel Lenkes 21.09.2010 17:15
quelle

Tags und Links