Strip alles in der Zeichenkette nach dem zweiten "-" Zeichen, das auftritt?

9

Wie kann ich alles in einer Zeichenkette entfernen, nachdem das Zeichen "-" zum zweiten Mal aufgetreten ist?

Zum Beispiel: Heute ist - Freitag und morgen ist - Samstag

In diesem Fall würde ich wollen, dass Samstag zusammen mit dem letzten entfernt wird - also irgendwie strip: "- Samstag"

Jede Hilfe wird sehr geschätzt :) Ich kann nur scheinen, dass alles nach dem ersten "-" entfernt wird.

    
samirah 17.06.2011, 00:43
quelle

7 Antworten

12

Verwenden Sie strpos , um das erste Vorkommnis zu finden und verwenden Sie es erneut, um den Punkt zu finden, der mit dem Offset-Option mit dem Wert von vorherigen. Dann benutze substr .

%Vor%     
Rasika 17.06.2011, 00:46
quelle
7

Wie wäre es mit Explosionen:

%Vor%     
Bailey Parker 17.06.2011 00:48
quelle
3

Ein anderer Weg mit strtok :

%Vor%

DEMO

    
Felix Kling 17.06.2011 00:55
quelle
2

Ich habe die gleiche Frage, aber ich musste die Zeichenfolge vom dritten Vorkommen zurückbekommen, also habe ich eine Funktion dafür gemacht, wo Sie eine eindeutige Trennposition angeben können. Wahrscheinlich benutzt jemand anderes gerne:

%Vor%

Beispiel:

%Vor%

und wenn Sie das Trennzeichen vor dem Ergebnis benötigen, ändern Sie einfach die Rückgabe:

%Vor%     
rastafest 01.08.2016 16:25
quelle
1

Sie könnten explode () verwenden, um die Zeichenfolge bei jedem Auftreten von "-" aufzuteilen. ZB:

%Vor%

Würde dich verlassen mit:

%Vor%

Und als solches wird das Bit, das Sie wollen, die ersten zwei Elemente mit einem "-" in der Mitte sein, so dass wir das letzte Element aus dem Array herausholen und den Rest verbinden können:

%Vor%

Was gibt:

%Vor%     
Jack Franklin 17.06.2011 00:55
quelle
1

Für andere mit dem gleichen Problem; Ich habe diese kompakte Lösung verwendet, die einfach anzupassen ist.

%Vor%     
SebHallin 16.12.2016 12:17
quelle
0
%Vor%

strpos

substr

    
ben 17.06.2011 00:49
quelle

Tags und Links