2010-12-22 85 views
2

說我有二郎二進制模式匹配未知數

Bin = <<"10=123">> 

此功能

binary:split(Bin, <<"10=">>), 

分裂成

[<<"10=">>, <<"123">>] 

相反,我需要它來匹配最後3個數字。 即使它的345或777. 一個肯定的事情是,它將始終是3個數字。

因此,這將不是匹配整個模式

我不是用二進制文件不太好,但我相信我尋找類似

binary:split(Bin, <<01,"10=", 3/binary>>), 

回答

4

我不是100%肯定你的意思,但如果你只想在< <「123」 >>一部分,那麼匹配,你可以簡單地做:

1> <<"10=", Rest/binary>> = <<"10=123">>. 
<<"10=123">> 
2> Rest. 
<<"123">> 

如果你不想完全匹配< <「10 =」>>部分只是用「_:3/binary」代替它。

如果這是你想要什麼,然後你原來的方式會工作一樣好:

1> Bin = <<"10=123">>. 
<<"10=123">> 
2> [_,Rest] = binary:split(Bin, <<"10=">>). 
[<<>>,<<"123">>] 
3> Rest. 
<<"123">> 
+0

我認爲你是在什麼/位串手段是錯誤的。它與字符串無關。 – 2010-12-22 21:43:54