2012-04-13 16 views
0

Ich bin wirklich verwirrt, wie diese Frage zu formulieren. Ich muss eine Portion Schnur nehmen, die in einer eckigen Klammer eingeschlossen ist. Bitte sehen Sie das BeispielPHP: Eine Zeichenfolge innerhalb Platzhalter lesen

Re: [115] VFA 1 von 04.11.2012 bis 04.12.2012 mit-1221

Dies jemand ist als Thema Mail senden. Ich muss die Nummer 115 aus der eckigen Klammer abrufen. Wenn mehr als eckige Klammern vorhanden sind, wird die Position zuerst an einem beliebigen Punkt angezeigt.

Wie könnte ich das beheben?

EDIT

Ich wünschte, könnte ich habe alle Instanzen von [] in dem Re-String erhalten: [115] [12] VFA 1 von 04.11.2012 bis 04.12.2012 mit -1221

Dank

Antwort

2

Sie können dies mit regular expressions:

preg_match_all('/\[(\w+)\]/', $str, $matches); 
$square_brackets = $matches[1]; // array of: "115", "12" 
+0

Added Denken, wenn ich noch einmal [] nach dem ersten, es wird es nicht wert sein –

+0

@duke: Können Sie dieses andere Beispiel in Ihre Frage aufnehmen, zusammen mit den Daten, die Sie extrahieren möchten? –

+0

Ich habe die Frage –

1

Dies ist jemand, der als Betreff der Mail sendet. Ich muss die Nummer 115 aus der eckigen Klammer abrufen. Wenn es mehr als eckige Klammer ist gekommen, Position dies wird zuerst

an jedem Punkt sein, wenn es immer numerisch ist, und immer die erste in Klammern eingeschlossen werden:

<?php 
$line = 'Re: [115]VFA 1 von 04/11/2012 bis 04/12/2012 mit-1221'; 

if(preg_match('~\[(\d+)\]~', $line, $matches) !== 0) { 
    $number = array_shift($matches); 
} 
else { // no match. 
} 
Verwandte Themen