Frage

    

Diese Frage bereits eine Antwort hier:

         

Gibt es ein Dienstprogramm, das POSIX PCRE für PHP konvertieren? Ich bin ein wenig durch die PHP-Handbuch auf PCRE verwirrt, und während ich werde versuchen, weitere Informationen auf PCRE zu finden, ich habe mich gefragt, ob jemand ein solches Programm entwickelt hatte.

Oder, wenn jemand würde erklären, wie die folgenden konvertieren, das auch in Ordnung wäre:

ereg("^#[01-9A-F]{6}$", $sColor)

Aber bitte erklären, wie es gemacht wird, sagen Sie mir nicht nur die Konvertierung.

War es hilfreich?

Lösung

preg_match("/^#[01-9A-F]{6}$/", $sColor)
In this case you only need to add the two delimiters.

In perl you can write something like

if ( s =~ /x.+y/ )
{ print "match"; }
As you can see the actual regular expression is encapsulated in //. If you want to set an option on the regular expression you put it after the second /, e.g. switching the expression to ungreedy by default /x.+y/U
pcre now emulates this behaviour. Though you have to call a function you also have to provide the delimiters and set the options after the second delimiter. In perl the delimiter has to be /, with pcre you can chose more freely
preg_match("/^#[01-9A-F]{6}$/", $sColor)
preg_match("!^#[01-9A-F]{6}$!", $sColor)
preg_match("#^\#[01-9A-F]{6}$#", $sColor) // need to escape the # within the expression here
preg_match("^#[01-9A-F]{6}$", $sColor)
all gleich pcre, am besten um ein Zeichen zu wählen, die nicht im Ausdruck erscheint.

Andere Tipps

preg_match("/^#[01-9A-F]{6}$/D", $sColor)

Beachten Sie die D Modifikator . Menschen über die ganze Zeit vergessen. Ohne sie $ einem endgültiges Newline-Zeichen ermöglichen. Eine Zeichenfolge wie „# 000000 \ n“ würde passieren. Dies ist ein feiner Unterschied zwischen POSIX und PCRE.

Und natürlich kann [01-9] zu [0-9] neu geschrieben werden.

By the way, unterstützt PHP beide PCRE und POSIX reguläre Ausdrücke. Hier ist der Abschnitt des PHP-Handbuch auf POSIX regulären Ausdrücke, so dass Sie sich nicht, sie zu konvertieren: http://www.php.net/manual/en/book.regex.php

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top