"preg_match(): Compilation failed: unmatched Klammern" in PHP für gültige Muster

Frage mich, ob jemand da draußen kann etwas Licht auf, warum der folgende reguläre Ausdruck ist zu Versagen, wenn verwendet in der PHP preg_match-Funktion:-

<?php
$str = '\tmp\phpDC1C.tmp';

preg_match('|\\tmp\\([A-Za-z0-9]+)|', $str, $matches);

print_r($matches);
?>

Diese Ergebnisse in der Fehlermeldung "preg_match(): Compilation failed: unmatched Klammern" trotz der Tatsache, dass das Muster scheint gültig zu sein. Ich habe es getestet mit einem online - PHP-Regular Expression tester und das Linux-tool Kiki. Scheint, wie PHP ist die Flucht vor die öffnende Klammer ein, anstatt den umgekehrten Schrägstrich.

Habe ich Runde das Problem mit str_replace ersetzen Sie die backslashes zu forward-ones. Dies funktioniert für meine situation, aber es wäre schön zu wissen, warum dieser reguläre Ausdruck nicht.

Schreibe einen Kommentar