2016-12-26 2 views
0

Ich habe eine Zeichenfolge wie folgt: x320h220, wie eine Zeichenfolge in einem Array mit preg_split mit zwei Zustand spalten

ich diese Zeichenfolge in zwei Variablen geteilt werden soll: $width und $height

I gespalten Kann es explodieren mit aber ich muss diese Methode zweimal verwenden, um diese Werte zu erhalten, also habe ich herausgefunden, preg_split wird den Trick tun. Aber ich weiß nicht, die Regex diese Zeichenfolge in zwei Variablen aufzuspalten (finden, wenn der String enthält x dann den Rest bis h schneiden und dann den Rest schneidet wieder in einer anderen Variable), die sie sein sollte:

$width = 320; 
$height = 220; 

ein Vorschlag?

Antwort

4

Verwenden Sie preg_match(), nicht preg_split(). Verwenden Sie Erfassungsgruppen, um die zwei Zahlen zu extrahieren.

if (preg_match('/x(\d+)h(\d+)/', $string, $match)) { 
    $width = $match[1]; 
    $height = $match[2]; 
} 

Im regexp:

  • x und h selbst passen buchstäblich
  • \d+ entspricht einer Folge von Ziffern
  • () um die Ziffernfolge Einlochen Capture-Gruppe erstellt, so dass die abgestimmte Teile werden in das $match Array gelegt.
+0

@Barmar Ehrfürchtig Geck. Kannst du den Regex in deiner Antwort erklären? erkläre jeden von ihnen, wenn es für dich möglich ist –

+0

@Mohammad Ich habe es hinzugefügt, aber es schien kaum nötig, für solch eine grundlegende Regexp ins Detail zu gehen. Es verwendet nichts fortgeschrittenes, also sollte selbst ein Anfänger mit regulärem Hintergrund es verstehen. Sie sollten zu www.regular-expression.info gehen und das Tutorial lesen. – Barmar

+0

@Barmar Danke, ich werde es überprüfen. –

0

Verwendung dieses $ size = preg_split("/[xh]/", "x320h220", -1, PREG_SPLIT_NO_EMPTY)

Hoffe, es wird für Sie arbeiten :)

Verwandte Themen