CurryWurst_
Grünschnabel
Hallo liebe Community!
Mit meinem allerersten Forumeintrag möchte ich euch gleich einmal "belästigen"
Es handelt sich dabei um folgendes Problem:
Zurzeit schreibe ich an einem PHP-Skript, welches Daten von Sockets empfängt und sie auswertet. Bevor ich eingegangene Daten parse möchte ich sie im Voraus auf ihre Integrität überprüfen. Diese Validation möchte ich mit Hilfe von PCRE-Funktionen machen. Wobei eingehende Daten die folgende Struktur haben:
(Zahl) + tab + (String1) + tab + (String2) + tab + (String3)...
"Zahl" steht sowohl für negative als auch positive Zahlenwerte und es unbegrenzt in ihrer Länge, d.h. in regex-Form ausgedrückt: -?\d+
"tab" ist einfach ein Tabulator: \t
"String1" hat im Gegensatz zu allen weitern Strings eine besonderes Merkmal: Er darf nur aus den zeichen [a-zA-Z] bestehen und ist unbegrenzt in seiner Länge, muss jedoch mindestens ein Zeichen besitzen, also [a-zA-Z]+
Alle weiteren Strings (String1, String2, String3 ... String[n]) dürfen fast beliebige Zeichen haben, bzw. alle druckbaren Zeichen: [[rint:]]
So weit so gut In der Praxis möchte ich für die Validierung die PHP-Funktion preg_match_all einsetzen, wobei sie alle Treffer, die kein Tabulatorzeichen sind, in ein Array abspeichern soll. Wie es aussieht stellt das auf den ersten Blick keine Schwierigkeit da, zumindest für gewisse PHP-Experten in disem Forum, aber für mich schon. Mit dem folgenden regex String komme ich zu keinem brauchbaren Ergebnis ...
Ich wäre um jegliche Hilfe zu dieser Problemstellung sehr dankbar.
Grüße
CurryWurst_
Mit meinem allerersten Forumeintrag möchte ich euch gleich einmal "belästigen"
Es handelt sich dabei um folgendes Problem:
Zurzeit schreibe ich an einem PHP-Skript, welches Daten von Sockets empfängt und sie auswertet. Bevor ich eingegangene Daten parse möchte ich sie im Voraus auf ihre Integrität überprüfen. Diese Validation möchte ich mit Hilfe von PCRE-Funktionen machen. Wobei eingehende Daten die folgende Struktur haben:
(Zahl) + tab + (String1) + tab + (String2) + tab + (String3)...
"Zahl" steht sowohl für negative als auch positive Zahlenwerte und es unbegrenzt in ihrer Länge, d.h. in regex-Form ausgedrückt: -?\d+
"tab" ist einfach ein Tabulator: \t
"String1" hat im Gegensatz zu allen weitern Strings eine besonderes Merkmal: Er darf nur aus den zeichen [a-zA-Z] bestehen und ist unbegrenzt in seiner Länge, muss jedoch mindestens ein Zeichen besitzen, also [a-zA-Z]+
Alle weiteren Strings (String1, String2, String3 ... String[n]) dürfen fast beliebige Zeichen haben, bzw. alle druckbaren Zeichen: [[rint:]]
So weit so gut In der Praxis möchte ich für die Validierung die PHP-Funktion preg_match_all einsetzen, wobei sie alle Treffer, die kein Tabulatorzeichen sind, in ein Array abspeichern soll. Wie es aussieht stellt das auf den ersten Blick keine Schwierigkeit da, zumindest für gewisse PHP-Experten in disem Forum, aber für mich schon. Mit dem folgenden regex String komme ich zu keinem brauchbaren Ergebnis ...
PHP:
/^(-?\d+)\t([a-z]+)(?:\t([[:print:]]+))+/
Ich wäre um jegliche Hilfe zu dieser Problemstellung sehr dankbar.
Grüße
CurryWurst_