Einführung in reguläre Ausdrücke in PHP
Durch Bernard Peh
In Linux und Unix, Die Syntax, die üblicherweise von vielen Anwendungen für die Angabe Textmuster verwendet wird, wird als reguläre Ausdrücke oder in Kurzform bekannt – regex. Regex ist eine sehr leistungsfähige Methode, um Muster und viele Programme beschreiben, nutzen sie, um zu beschreiben Sequenzen von Zeichen angepasst werden. Search programs such as ‘grep’ verlassen sich stark auf regex. Grundsätzlich regex bildet den Kern in der Linux-Welt. Viele Skriptsprachen wie Perl, Rubin, php…etc hat in regex-Funktionen zu bauen sowie. So können Sie sehen, Lernen regulärer Ausdruck ist wichtig, weil sie eine Menge an vielen Orten und wahrscheinlich auch verwendet werden um so mehr in die Zukunft.
Regex kann anfangs unheimlich, aber wenn man die Grundlagen bekommen, es ist wirklich nicht allzu schwer zu verstehen. In diesem Artikel, werden wir, wie Regex kommt ins Bild schauen beim Schreiben von PHP-Anwendungen.
Um eine kurze Zusammenfassung bisher tun, ein regulärer Ausdruck ist eine Folge von Literalen, Wildcards, Modifikatoren und Anker.
Literale Zeichen
Wörtliche Zeichen sind Buchstaben, Ziffern und Sonderzeichen, die nur mit sich selbst. Beispiele sind abc, 123, ~ @ Und so weiter (Einige Zeichen werden jedoch vorbehalten).
– Eine Einbeziehung Bereich [mn] entspricht einem beliebigen Zeichen in das Sortiment aufgenommen von M bis N.
Example ‘[a-z]’ wird jedes Zeichen, das alpha fällt in den Bereich einer bis Z entsprechen.
– Ein Ausschluss Bereich [^ Mn] entspricht einem beliebigen Zeichen nicht enthalten im Bereich von m zu n. Example ‘[^ 0-9]’ alle Nicht-stellige Zeichen passen.
– Ein Zeitraum “.” passt auf jedes Zeichen. Es ist auch bekannt als Platzhalter. Example ‘a.c’ will match ‘aec’, ‘acc’, ‘a@a’ usw..
– Das Escape-Zeichen ” ermöglichen Interpretation von Sonderzeichen. Example ‘a.c’ will match ‘ac’ nur. Remember that ‘.’ ein reserviertes Zeichen ist, um einen Platzhalter dar? Deshalb passen auf eine Periode, ie ‘.’, we need to escape it like so ‘.’
– Der Ausdruck [:alnum:] werden alle alphanumerischen Zeichen übereinstimmen. Es ist eine Verknüpfung zu [A-Za-z0-9]. Wie Sie sehen können, es ist nicht wirklich eine Abkürzung. Der Ausdruck [:alnum:] könnte leichter sein, für einige Leute erinnern.
– Der Ausdruck [:Alpha:] werden alle Alpha-Zeichen entsprechen. Es ist eine Verknüpfung zu [A-Za-z].
– Der Ausdruck [:leer:] wird ein Leerzeichen oder Tab entsprechen.
– Der Ausdruck [:Ziffer:] wird eine numerische Ziffer übereinstimmen. Es ist eine Verknüpfung zu [0-9].
– Der Ausdruck [:senken:] werden alle Kleinbuchstaben passen. Es ist eine Verknüpfung zu [a-z].
– Der Ausdruck [:obere:] werden alle Großbuchstaben entsprechen. Es ist eine Verknüpfung zu [A-Z].
– Der Ausdruck [:Punkt:] werden alle druckbaren Zeichen entsprechen, ohne Leerzeichen und alphanumerische.
– Der Ausdruck [:Raum:] wird ein Leerzeichen passen.
Modifikatoren
Ein Modifikator ändert die Bedeutung des unmittelbar vorhergehenden Musterzeichen.
– Ein Sternchen (‘*’) Streichhölzer 0 oder mehreren der vorhergehenden Begriff. Example ‘a*’ passt auf ”, ‘a’, ‘aa’, ‘aaaaa’ usw. (Beachten Sie die Verwendung von ”. Es bedeutet einfach, dass der Ausdruck nichts als gut übereinstimmt).
– Ein Fragezeichen (‘?') Streichhölzer 0 oder 1 der das vorhergehende. Example ‘a?’ passt auf ” and ‘a’ nur.
– Ein Pluszeichen (‘+’) Streichhölzer 1 oder mehreren der vorhergehenden Begriff. Example ‘a+’ will match ‘a’, ‘aaaaaaa’ usw.. Es wird nicht mit ”.
– {m,n} Übereinstimmungen zwischen m und n Vorkommen des vorhergehenden Semesters. Example ‘a{1,3}’ will match ‘a’, ‘aa’ and ‘aaa’ nur.
– {n} Spiele genau n Vorkommen des vorhergehenden Semesters. Example ‘a{2}’ will match ‘aa’ nur.
Anchors
Anker den Kontext für die Muster, wie beispielsweise “der Anfang eines Wortes” oder “Ende des Wortes”.
– The pike ‘^’ markiert den Anfang einer Zeile. Example ‘^http’ will match any new line that starts with ‘http’.
– The dollar sign ‘$’ markiert das Ende einer Zeile. Example ‘after$’ will match any line that ends with ‘after’. (Variablen in PHP beginnt mit $. Versuchen Sie, nicht zu verwechseln mit ihm).
Gruppierung
Grouping ‘( )’ Modifikatoren können bis auf Gruppen von regex Planer stattdessen gelten nur für die unmittelbar proceding specifier. Example ‘( aa | bb )’ will match either ‘aa’ or ‘bb’
Genug von langweiligen Kram, es ist Zeit, was die Theorie der Regex in guten Zweck.
PHP-Implementierung
Es gibt 2 Haupt-Varianten von regex, Perl-kompatiblen regulären Ausdruck (PCRE) und POSIX-erweiterten. PHP bietet durchaus eine Menge von Funktionen, um diese umzusetzen 2 Arten von regex. In PHP, the most commonly used PCRE function is ‘preg_match’ und in POSIX-erweiterten Regex, ‘ereg’. Sowohl Syntax sind etwas anders, aber ebenso leistungsfähige. The preference to use ‘preg_match’ or ‘ereg’ liegt ganz bei einzelnen obwohl Zend schlug vor, dass preg_match ist etwas schneller. I prefer to use ‘eregi’ nur wegen meiner Erfahrung in Linux Administration.
Beispiel 1: Passende USA 5 oder 9 stelligen Postleitzahlen
Postleitzahlen in den USA haben das folgende Format ##### oder #####-#### wo # eine Ziffer. Wenn Sie überprüfen wollen, dass die Postleitzahl eingereicht sagen, aus einem Online-Formular, Sie müssen Regex irgendwo in Ihrem Skript verwenden, um es zu überprüfen,. Der passende POSIX-erweiterten Regex-Muster werden:
[[:Ziffer:]]{5}(-[[:Ziffer:]]{4})?
Verwirrt? Warten Sie, lassen Sie mich erklären, warum. Diese Regex ist wie folgt aufgeteilt 2 Teile: [[:Ziffer:]]{5} und (-[[:Ziffer:]]{4})?.
Erster Teil: ‘[[:Ziffer:]]’ bezeichnet den einstelligen Bereich und {5} bedeutet, dass die Ziffer muss vorkommen 5 mal.
Zweiter Teil: The bracket ‘( )’ groups the ‘-[[:Ziffer:]]{4}’ together and the ‘?’ means the expression ‘(-[[:Ziffer:]]{4})’ kann entweder 0 oder 1 Zeit.
Um die Regex in PHP implementieren, verwenden wir den folgenden Code:
$zipCodes = ‘xxxxx-xxxx’;
$pattern = ‘[[:Ziffer:]]{5}(-[[:Ziffer:]]{4})?';
wenn (ereg($Muster,$ZipCodes)) {
Echo “abgestimmt gefunden “;
}
sonst {
Echo “entsprechen nicht gefunden”;
}
Beispiel 2: Passende Termine
Sagen wir, wir wollen die Daten vom Benutzer eingegeben überprüfen. Wenn wir akzeptieren nur Daten wie “JJJJ-MM-DD” oder “YYYY-M-D”, die Regex-Muster werden
[0-9]{4}(-[0-9]{1,2})+
The ‘+’ hinter dem Begriff (-[0-9]{1,2}) bedeutet, dass der Begriff mindestens einmal vorkommen muss. Beachten Sie, dass kann ich auch schreiben die Regex als:
[[:Ziffer:]]{4}(-[[:Ziffer:]]{1,2})+
oder
[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}
Wie Sie sehen können, es können viele Lösungen sein, ein Problem…
Abschluss
Regex ist vielleicht schwer zu verdauen, zunächst aber die Logik ist einfach, wenn Sie in der Lage, mehr zu üben sind. Lernen regex ist genauso wichtig wie das Lernen PHP. Mehr Beispiele finden Sie unter Web-developer.sitecritic.net gesehen werden. Viel Glück.
Bernard Peh ist ein großer passioner von Web-Technologien und einer der Mitbegründer von Sitecritic.net Site Reviews. Er arbeitet mit erfahrenen Webdesigner und Entwickler für mehr als 5 Jahr, Entwicklung und Konstruktion von kommerziellen und nicht-kommerziellen Webseiten. In seiner Freizeit, er tut Website Bewertungen, freiberuflicher SEO und PHP Arbeit. Besuchen Sie seinen Blog unter Melbourne PHP
Artikelquelle: http://EzineArticles.com/?Experte = Bernard_Peh
http://EzineArticles.com/?Einleitung-To-Regular Expressions-PHP-In-&id = 222113