Christian H.: RegEx-Problem

Beitrag lesen

Hallo Danny,

es soll ein Teilstring in Anführungszeichen ermittelt werden. Zugelassen sind " und ' wobei innerhalb der Anführungszeichen diese auch maskiert vorkommen können. Bsp:

<a href="foo.html" title="das ist ein "Test" id="test">

ich habe mal ein wenig rumgespielt. Jetzt bin ich aber zu müde, ab hier kannst du weiter machen.

<?php  error_reporting(E_ALL);
header("Content-type: text/plain ");
define ( 'nl' , "\n" ) ;
// ---------------------------------

$html ='<a href = "foo.html" title= "das \\ist ein \"Test" id ="test" blub = "" >' ;
echo $html . nl.nl ;

$pattern = '#(\S+)\s*=\s*(""|"\\\\"|"[^"\\]"|"[^"].*?[^\\]")#s';
echo '$pattern = '.$pattern .nl.nl ;

preg_match_all ($pattern , $html , $matches ) ;

print_r ( $matches );

/* Ausgabe
Array
(
    [0] => Array
        (
            [0] => href = "foo.html"
            [1] => title= "das \ist ein "Test"
            [2] => id ="test"
            [3] => blub = ""
        )

[1] => Array
        (
            [0] => href
            [1] => title
            [2] => id
            [3] => blub
        )

[2] => Array
        (
            [0] => "foo.html"
            [1] => "das \ist ein "Test"
            [2] => "test"
            [3] => ""
        )

)

*/
?>

Gruß
  Christian