RegEx-Problem

DaRealMC

Erfahrenes Mitglied
Hallo zusammen,

ich hänge gerade an einem (kleinen) RegEx-Problem
ich habe folgenden PHP-Code
PHP:
$data='Der Einsatz hat 1,5 Stunden gedauert.eingesetzte Fahrzeuge:TSF, MZFeingesetzte Kräfte:4weitere Einsatzkräfte:Polizei';
preg_match_all('/eingesetzte Fahrzeuge:|eingesetzte Kräfte:|weitere Einsatzkräfte:(.*)/siU', $data, $matches);
var_dump($matches);

Als Ergebnis bekomme ich
Code:
array(2) {
  [0]=>
  array(3) {
    [0]=>
    string(22) "eingesetzte Fahrzeuge:"
    [1]=>
    string(19) "eingesetzte Krõfte:"
    [2]=>
    string(22) "weitere Einsatzkrõfte:"
  }
  [1]=>
  array(3) {
    [0]=>
    string(0) ""
    [1]=>
    string(0) ""
    [2]=>
    string(0) ""
  }
}

Jedoch sollten in [1][0] bis [1][2] die Werte stehen. Wie muss ich meine RegEx anpassen, dass das passt?
 
Du musst die Präfixe gruppieren:
Code:
/(eingesetzte Fahrzeuge|eingesetzte Kräfte|weitere Einsatzkräfte):(.*)/siU
 
Das habe ich auch schon probiert.
Ergebnis sieht dann so aus
Code:
array(3) {
  [0]=>
  array(3) {
    [0]=>
    string(22) "eingesetzte Fahrzeuge:"
    [1]=>
    string(19) "eingesetzte Krõfte:"
    [2]=>
    string(22) "weitere Einsatzkrõfte:"
  }
  [1]=>
  array(3) {
    [0]=>
    string(21) "eingesetzte Fahrzeuge"
    [1]=>
    string(18) "eingesetzte Krõfte"
    [2]=>
    string(21) "weitere Einsatzkrõfte"
  }
  [2]=>
  array(3) {
    [0]=>
    string(0) ""
    [1]=>
    string(0) ""
    [2]=>
    string(0) ""
  }
}
 
Mach Folgendes:
PHP:
$parts = preg_split('/(eingesetzte Fahrzeuge|eingesetzte Kräfte|weitere Einsatzkräfte):/i', $data, -1, PREG_SPLIT_DELIM_CAPTURE);
 
Zurück