16.8 In regulären Ausdrücken Sonderzeichen verwenden

Problem

Sie möchten, dass in einem regulären Ausdruck Zeichen wie * und + als normale Zeichen und nicht als Metazeichen behandelt werden. Dies ist sinnvoll, wenn Sie den Benutzern die Eingabe von Suchtexten ermöglichen wollen, um diese innerhalb eines regulären Ausdrucks zu verwenden.

Lösung

Verwenden Sie preg_quote(), um Metazeichen für Perl-kompatible reguläre Ausdrücke zu kennzeichnen:

$pattern = preg_quote('The Education of H*Y*M*A*N K*A*P*L*A*N').':(\d+)';
if (preg_match("/$pattern/",$book_rank,$matches)) {
    print "Das Buch von Leo Rosten hat den Rang: ".$matches[1];
}

Verwenden Sie quotemeta() zum Kennzeichnen von POSIX-Metazeichen:

$pattern = quotemeta('M*A*S*H').':[0-9]+'; if (ereg($pattern,$tv_show_rank,$matches)) ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.