Einzelnen Beitrag anzeigen

Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#2

Re: [PCRE] Separatoren als Subexpressions

  Alt 20. Okt 2005, 16:54
Hi Dax,
wenn du einen String mit einer Regex-Split-Funktion teilst, dann ist es klar, dass die Trennzeichen nicht mit zurückgeliefert werden.

Ich hab jetzt zwar keine Erfahrungen mit RegEx-Klassen aus anderen Sprachen, in PHP gibt es jedoch eine Funktion, die da Abhilfe schaffen könnte: preg_match_all().

Ich hab gerade mal ein bisschen rumprobiert und das ist dabei rausgekommen:
Code:
preg_match_all('/(?:([0-9])*?(:|#)?)*/', '1:2#3', $array);
Da kommt dann das bei PHP raus:
Code:
Array
(
    [0] => Array
        (
            [0] =>
            [1] => 1:
            [2] =>
            [3] => 2#
            [4] =>
            [5] => 3
            [6] =>
        )

    [1] => Array
        (
            [0] =>
            [1] => 1
            [2] =>
            [3] => 2
            [4] =>
            [5] => 3
            [6] =>
        )

    [2] => Array
        (
            [0] =>
            [1] => :
            [2] =>
            [3] => #
            [4] =>
            [5] =>
            [6] =>
        )

)
Das erste Unterarray ist zu vernachlässigen (siehe Manual), die anderen beiden enthalten genau die Werte, die du suchst. Ich bin sicher, dass andere Klassen das ein wenig praktischer ausgeben (wenn sie überhaupt solch eine Funktion kennen...).

Ich hoffe, das hilft dir weiter.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat