Regulärere Ausdrücke, die einem das Leben erleichtern
Die folgenden Regulärere Ausdrücke (regular expression, RegEx) können einem das Leben bei vielen Syntax Prüfungen extrem erleichtern. Dennoch möchte ich dazu raten, bei Prüfungen bei denen es um Security geht und nicht nur um einen einfachen Syntaxcheck AUF JEDEN FALL die entsprechenden Module/Klassen der Sprache zu verwenden. Wie zB für die Prüfung und Validierung von eMail-Adressen.
IP-Adresse mit Perl Regex validieren
if (/^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3} (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b\s+/) { print "IP OK; }
IPv4 mit RegEx (alternative)
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3} ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
URL mit RegEx validieren
^((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*\.)+ ([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil| museum|name|nato|net|org|pro|travel)| (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.) {3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) (\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)? (#[a-z][a-z0-9_]*)?$
URL mit RegEx validieren — Kürzer, einfacher, nicht so sicher aber meist ausreichend
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+ ([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
HTML Link mit RegEx validieren
<a[^>]*href=\"[^\s\"]+\"[^>]*>[^<]*<\/a>
eMail-Adresse mit RegEx validieren
^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+ ([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil| museum|name|nato|net|org|pro|travel)$
Hier sieht man eine der Schwächen der RegEx. Neue TopLevelDomain = Code anpassen
Besser gleich richtig: Prüfung und Validierung von eMail-Adressen.
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!