Unterteilt eine Zeichenfolge zwischen sich wiederholenden Zeichen

8

Ich möchte eine beliebige Zeichenfolge verwenden und sie basierend auf sich wiederholenden Zeichen aufteilen.

Wenn ich zum Beispiel die Zeichenfolge abcaaabbc eingeben würde, würde ich ein Array von Strings ausgeben, die gleich sind: [abca, a, ab, bc] . Jedes Mal, wenn ein Zeichen wiederholt wird, möchte ich eine neue Zeichenfolge beginnen.

Natürlich ist das mit einer Schleife möglich, aber ich frage mich, ob ich das mit der Methode String.split() erreichen kann. Wenn ja - wie groß wäre die RegEx ?

    
Bohemian 29.12.2012, 06:41
quelle

2 Antworten

12

Tokeniere die Eingabezeichenfolge, wobei das vorherige Zeichen (Look-Back (?<=(.)) ) das gleiche ist wie das nächste Zeichen (Look-ahead (?=\1) ) und captures (.) .

%Vor%     
Prince John Wesley 29.12.2012, 06:52
quelle
0

Aus Performance-Sicht würde ich bei einer Schleife bleiben. Es läuft in O (n) Zeit. Die string.split (Regex) ist bekannt dafür, langsam zu sein. Ich habe es kürzlich anstelle einer Schleife verwendet und festgestellt, dass es O (n ^ 2) im Vergleich zur O (n) Schleife ist.

K.I.S. Hauptsächlich arbeitet hier

    
Dan 20.11.2013 18:53
quelle

Tags und Links