Skeeve: regulärer Ausdruck

Beitrag lesen

Moin!

preg_match('/^$xxx *= *"(*)*";$/', $dateiInhalt, $treffer);

Haufenweise Fehler in dem Ausdruck.

Am ehesten dürfte Dir der hier helfen, wenn der auch nicht narrensicher ist:

/^\s*$xxx\b\s*=\s*("(?:[^"]|\")*"|'(?:[^']|\')*')/

Wobei Du anschließend noch das erste und letze Zeichen entfernen mußt.

Aber wie gesagt: Das ist nicht narrensicher, da es in Perl viele Möglichkeiten gibt, einen Wert anzugebe:

  
$xxx= 'ccc';  
$xxx= "ccc";  
$xxx= q(ccc);  
$xxx= qq<ccc>;  
$xxx= <<'ENDE';  
ccc  
ENDE  
$xxx= 'c' x 3;  
# ad infinitum...  

-- Skeeve