Wie verbinde ich eine Sequenz von identischen Zeichen in nur einem?

7

Angenommen, ich habe Folgendes:

Meine --- Sonne - ist ------ sehr groß ---.

Ich möchte alle mehrere Bindestriche durch nur einen Bindestrich ersetzen.

    
TIMEX 11.05.2010, 19:28
quelle

9 Antworten

16
%Vor%     
unutbu 11.05.2010, 19:31
quelle
13

Wenn Sie beliebige aufeinanderfolgende Zeichen ersetzen möchten, können Sie

verwenden %Vor%

Wenn Sie nur Nicht-Wort-Zeichen zusammenfügen möchten, verwenden Sie

%Vor%

Wenn es nur Bindestriche sind, empfehle ich die Lösung von unutbu.

    
Tim Pietzcker 11.05.2010 20:10
quelle
5

Wenn Sie nur Bindestriche zusammenfügen möchten, verwenden Sie die anderen Vorschläge. Ansonsten kannst du deine eigene Funktion schreiben, etwa so:

%Vor%     
FogleBird 11.05.2010 19:55
quelle
5

Wie immer gibt es eine nette itertools Lösung, die groupby verwendet:

%Vor%     
Will McCutchen 11.05.2010 20:05
quelle
2

Wie wäre es mit:

%Vor%

Der reguläre Ausdruck "-+" sucht nach 1 oder mehr "-" .

    
Charles Beattie 11.05.2010 19:34
quelle
1
%Vor%     
Jakub Hampl 11.05.2010 19:33
quelle
1

Wie wäre es mit einer Alternative ohne das Modul re:

%Vor%

Oder gehen Sie mit dem früheren Vorschlag von Tim und FogleBird, hier ist eine allgemeinere Methode:

%Vor%

Obwohl ich persönlich das re-Modul zuerst benutzen würde:)

  • mcpeterson
mcpeterson 11.05.2010 21:29
quelle
0

Eine weitere einfache Lösung ist die Ersetzungsfunktion des String-Objekts.

%Vor%     
user334997 11.05.2010 22:59
quelle
0

Wenn Sie keine regulären Ausdrücke verwenden möchten:

%Vor%     
user4337613 08.12.2014 14:15
quelle

Tags und Links