2010-12-22 57 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