2017-12-08 1 views
-9

Ich muss eine Zeichenfolge durch wiederholte Zeichen teilen.Erfassen Sie wiederholte Zeichen und teilen Sie mit Python

Zum Beispiel:

Meine Zeichenfolge "howhowhow"

Ich brauche Ausgabe als 'wie, wie, wie'.

Ich kann nicht "wie" direkt in meinem reg exp verwenden. weil meine Eingabe variiert. Ich sollte die Zeichenfolge überprüfen, ob es das Zeichen wiederholt und diese Zeichen aufteilen muss.

+9

Was haben Sie bisher versucht? –

+2

Wie hast du es bisher gemacht? – RoadRunner

+0

Regex Lookahead übereinstimmen und ersetzen. auch, lesen Sie bitte [diese Anleitung] (https://Stackoverflow.com/help/asking) für gute Fragen. Viel Glück. –

Antwort

1
lengthofRepeatedChar = 3 
str1 = 'howhowhow' 
HowmanyTimesRepeated = int(len(str1)/lengthofRepeatedChar) 
((str1[:lengthofRepeatedChar]+',')*HowmanyTimesRepeated)[:-1] 
'how,how,how' 

Works Wenn u die Länge der wiederholten Zeichen kennen

+1

Und wenn das Wort "testhowhowhow" ist, gibt es "tes, tes, tes, tes" aus – scharette

-1

Nutzung re:

re.findall("how", "howhowhowhow") 
# ['how', 'how', 'how', 'how'] 

Wenn Sie eine Anzahl von Wiederholungen haben, können Sie re.split()

[x for x in re.split(r"(how)", "howhowhowhow", 2) if x != ''] 
# ['how', 'how', 'howhow'] 
2
import re 

string = "howhowhow" 

print(','.join(re.findall(re.search(r"(.+?)\1", string).group(1), string))) 

OUTPU T

howhowhow -> how,how,how 
howhowhowhow -> how,how,how,how 
testhowhowhow -> how,how,how # not clearly defined by OP 

Das Muster ist nicht gierig, so dass howhowhowhow nicht zu howhow,howhow Karte, die auch legitim ist. Entfernen Sie die ?, wenn Sie die längste Übereinstimmung bevorzugen.

Verwandte Themen