2012-04-06 9 views
0

Ich lese eine Datei mit Ruby und ich bin in der Lage, Strings in festen Formaten herauszufiltern. Aber ich möchte die Zeichenfolge mit variabler Größe filtern, die am Ende von mir übrig bleibt, indem ich etwas Regex oder etwas anderes benutze.Was könnte die Regex für null terminierte ASCII-Zeichenfolge sein?

Im Moment ist Zeichenfolge am Scannen mit Zeile nach

s.scan(/(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.{4})(.*)/).each do |f,g,h,i,j,k,l,m,n,p| 

aber immer noch will, dies filtern (. *) Teil der Zeichenfolge von null terminierten Strings von ihm zu trennen. Wie kann ich das tun?

Antwort

2

Ich verstehe nicht wirklich, warum Ihre Regex ist so, wie es ist, aber \0 ist ein Null-Byte in der Regex (oder \x00, wenn Sie Hex-Codes bevorzugen). Grundsätzlich:

"foo\x00bar".split(?\x00) 
=> ["foo", "bar"] 

"foo\x00bar" =~ /\0/ 
=> 3 
+0

Vielen Dank @ d11wtq –

Verwandte Themen