Regulärer Ausdruck 2 ERgebnisse

Dolphon

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem.

Wenn ich auf diesen Text
Code:
DB2XCD  ."ACLENTRIES"
diesen Audruck anwende:

PHP:
if (preg_match('#\"(.*?)\"#', $data[1], $temp))

bekomme ich als Ergebniss:

Code:
"ACLENTRIES" 
ACLENTRIES

Warum bekomme ich 2 Ergebnisse? Ich brauche aber nur das 2. Ergebnis.

Gruß

Dolphon
 
Schau dir mal die Doku zu preg_match an.
$Treffer[0] ist der mit dem Pattern übereinstimmende part.
$treffer[1] ist der Inhalt der ersten Klammer deines Ausdrucks
$treffer[2] der Inhalt der 2ten klammer
etc.

Mit einem Beispiel mit merh als einer Klammer sieht man das besser:
Code:
//String
xyzabc123xyz

//Pattern
#([a-z]{3})([0-9]{3})#

//Resultat
Array ( 
  [0] => abc123 
  [1] => abc 
  [2] => 123
)
 
So rum wirds was:

PHP:
<?php
$temp = 'DB2XCD  ."ACLENTRIES"';


if (preg_match('#\"(.*?)\"#', $temp, $data)) {
    echo $data[1];
}

?>
 
Arrayeintrag [0] ist stets das komplett gefundene Pattern.
Darauf folgen die Einzelfunde, die man sich mit Klammern wünscht.

mfg chmee
 

Neue Beiträge

Zurück