Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ibex:kursinhalte:kursteil2:regex [2025/03/20 09:05] 47.128.98.140 alte Version wiederhergestellt (2025/03/02 02:06) |
ibex:kursinhalte:kursteil2:regex [2025/04/12 07:40] (aktuell) 47.128.39.8 alte Version wiederhergestellt (2025/03/20 04:22) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== reguläre Ausdrücke ====== | ||
+ | < | ||
+ | <?php | ||
+ | // reguläre Ausdrücke (regular expressions = regex) | ||
+ | // preg_match() | ||
+ | // in einer Zeichenkette gefunden wird oder nicht | ||
+ | |||
+ | $str = " | ||
+ | $pattern = "/ | ||
+ | /** | ||
+ | * /(Anfang regex) | ||
+ | * ^ überprüft Anfang des Textes, hier: das 1. Zeichen darf keine Zahl haben | ||
+ | * [] überprüft, | ||
+ | * allerdings gilt das nur für das erste Zeichen und wenn man die | ||
+ | * Klammer noch mal einfügt, für das zweite und so weiter | ||
+ | * ^innerhalb der eckigen Klammern verneinend, in den | ||
+ | * eckigen Klammern wird nun überprüft, | ||
+ | * enthalten sind | ||
+ | * 0-9 ... in diesem Fall soll überprüft werden, ob keine | ||
+ | * Ziffern in der Zeichenkette sind | ||
+ | * * hier: alle 0-n Zeichen zwischen erstem und letztem Zeichen | ||
+ | * dürfen keine Zahl sein | ||
+ | * $ überprüft das Ende einer Zeichenkette, | ||
+ | * / Ende des regex | ||
+ | * für den Ausdruck [0-9] kann man auch [\d] (digits) nehmen | ||
+ | * statt [^\d] kann man auch [\D] nehmen, um Zahlen zu verneinen, | ||
+ | * hier kann man überlegen, ob man nicht lieber 3 Zeichen statt einem | ||
+ | * macht, dafür aber später den Code verstehen | ||
+ | * (mehr davon Link: https:// | ||
+ | */ | ||
+ | // preg_match(muster, | ||
+ | |||
+ | if( preg_match($pattern, | ||
+ | echo(" | ||
+ | } | ||
+ | else { | ||
+ | echo(" | ||
+ | } | ||
+ | |||
+ | $var = " | ||
+ | echo ('< | ||
+ | // bei '' | ||
+ | // deswegen bei echo "" | ||
+ | |||
+ | |||
+ | // Schreibe einen Regex, der eine beliebige Zeichenkette erkennt, | ||
+ | // die mit einem Großbuchstaben beginnt. [A-Z] | ||
+ | $str2 = " | ||
+ | $pattern2 = "/ | ||
+ | |||
+ | if( preg_match($pattern2, | ||
+ | echo(" | ||
+ | } | ||
+ | else { | ||
+ | echo(" | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * wenn ich auf ein Symbol prüfen will, das schon als Befehl vergeben ist, | ||
+ | * benutze ich Backslash, um das als | ||
+ | */ | ||
+ | echo ("< | ||
+ | | ||
+ | | ||
+ | |||
+ | if( preg_match($patternUml, | ||
+ | | ||
+ | } | ||
+ | else { | ||
+ | | ||
+ | } | ||
+ | |||
+ | |||
+ | echo ("< | ||
+ | /** | ||
+ | * prüfen, ob mehrere von einem vorkommt, z. B. www in URL | ||
+ | */ | ||
+ | | ||
+ | | ||
+ | |||
+ | if( preg_match($patternURL, | ||
+ | | ||
+ | } | ||
+ | else { | ||
+ | | ||
+ | } | ||
+ | |||
+ | // wenn man "/ | ||
+ | // | ||
+ | |||
+ | echo ("< | ||
+ | /** | ||
+ | * prüfen einer E-Mail | ||
+ | */ | ||
+ | $mail = " | ||
+ | | ||
+ | |||
+ | if( preg_match($patternURL, | ||
+ | | ||
+ | } | ||
+ | else { | ||
+ | | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | </ | ||
https:// | https:// | ||
{{ : | {{ : |