Hallo,
habe mal wieder ein Problemchen mit Regex-Suche in Binärdateien. Es geht eigentlich nur um das Vorhandensein einer x-beliebigen Zeichenfolge in dieser Datei.
In der Hilfe habe ich die Steuerzeichen \Q und \E gefunden, alles was dort dazwischen steht, wird (so wie ich das verstehe) als "normaler" String verwendet, z.B. ein im Suchstring enthaltenes [ würde NICHT als Anfang eines Sets interpretiert, sondern als ganz normales Zeichen.
Nun habe ich zwei kleine Beispiele, in dem einen wird der Suchstring gefunden, in dem anderen nicht.
Spoiler anzeigen
$bin_data=chr(193)&chr(1)&chr(16)&chr(65)&chr(127)
$searchstring=chr(1)&chr(16)&chr(65)
$pos=stringregexp($bin_data,"(?-i)(\Q"&$searchstring&"\E)",1) ;findet den string
if @error then
msgbox (0,"error regex",@error&@crlf&@extended)
else
msgbox (0,"Suchstring gefunden",0)
endif
;chr(1) durch chr(0) ersetzt
$bin_data=chr(193)&chr(0)&chr(16)&chr(65)&chr(127)
$searchstring=chr(0)&chr(16)&chr(65)
$pos=stringregexp($bin_data,"(?-i)(\Q"&$searchstring&"\E)",1) ;findet string nicht
if @error then
msgbox (0,"error regex",@error&@crlf&@extended)
else
msgbox (0,"Suchstring gefunden",0)
endif
zzt stehe ich auf dem Schlauch....
ciao
Andy