immes
29.11.2004, 08:40
Hallo
schönen Gruss erstmal an alle hier im Forum!!
Ich benötige ein Regex mit dem ich einen String auf selbstgebaute Packete überprüfen kann.
Ein Packet ist alles mit dieser Formatierung:
<STARTTAG>10 Ziffern Hashcode Beliebige Daten<ENDTAG>
also z.B.: <STARTTAG>1212002340Hallo mein Name ist Hase<ENDTAG>
alles was anders formatiert ist soll nicht erkannt werden
Hierbei ist jetzt das Problem, dass es zwischen <STARTTAG> und <ENDTAG> kein weiters <STARTTAG> mehr geben darf. (Wäre ja ein nicht gültiges Packet)
<STARTTAG>1212002340Hallo<STARTTAG>mein Name ist Hase<ENDTAG>
darf also vom Regex nicht gefunden werden.
Meine Lösung (die schon sehr viel Zeit gekostet hat) ist:
"<STARTTAG>{1}\d{10}(?!<STARTTAG>)(.*?)(?<!<STARTTAG>)</STARTTAG>{1}"
Diese funktioniert bis auf die Tatsache dass ein <STARTTAG>, das sich eingeschlossen im Datenteil befindet, als Packet erkannt wird.
Ich möchte also für den Datenteil alle Zeichen Zulassen außer dem Wort <STARTTAG>
Vielen Dank für eure Hilfe
cu
immes
schönen Gruss erstmal an alle hier im Forum!!
Ich benötige ein Regex mit dem ich einen String auf selbstgebaute Packete überprüfen kann.
Ein Packet ist alles mit dieser Formatierung:
<STARTTAG>10 Ziffern Hashcode Beliebige Daten<ENDTAG>
also z.B.: <STARTTAG>1212002340Hallo mein Name ist Hase<ENDTAG>
alles was anders formatiert ist soll nicht erkannt werden
Hierbei ist jetzt das Problem, dass es zwischen <STARTTAG> und <ENDTAG> kein weiters <STARTTAG> mehr geben darf. (Wäre ja ein nicht gültiges Packet)
<STARTTAG>1212002340Hallo<STARTTAG>mein Name ist Hase<ENDTAG>
darf also vom Regex nicht gefunden werden.
Meine Lösung (die schon sehr viel Zeit gekostet hat) ist:
"<STARTTAG>{1}\d{10}(?!<STARTTAG>)(.*?)(?<!<STARTTAG>)</STARTTAG>{1}"
Diese funktioniert bis auf die Tatsache dass ein <STARTTAG>, das sich eingeschlossen im Datenteil befindet, als Packet erkannt wird.
Ich möchte also für den Datenteil alle Zeichen Zulassen außer dem Wort <STARTTAG>
Vielen Dank für eure Hilfe
cu
immes