|
|
@ -136,14 +136,13 @@ getOutputIs(State) -> |
|
|
|
replaceSw(BinStr) -> |
|
|
|
TotalSize = byte_size(BinStr), |
|
|
|
MatchBIMWs = doMatchRs(BinStr, TotalSize - 1, _Index = 1, _State = 0, _MatchList = []), |
|
|
|
io:format("IMY******************* ~p~n", [lists:reverse(MatchBIMWs)]), |
|
|
|
doReplaceSw(lists:reverse(MatchBIMWs), BinStr, TotalSize, _StartPos = 0, <<>>). |
|
|
|
|
|
|
|
%% 从前往后替换 |
|
|
|
doReplaceSw([], BinStr, TotalSize, StartPos, BinAcc) -> |
|
|
|
case TotalSize > StartPos of |
|
|
|
true -> |
|
|
|
<<BinAcc/binary, (binary:part(BinStr, StartPos, TotalSize - StartPos))/binary>>; |
|
|
|
<<BinAcc/binary, (binary:part(BinStr, StartPos, TotalSize - StartPos))/binary>>; |
|
|
|
_ -> |
|
|
|
BinAcc |
|
|
|
end; |
|
|
@ -173,7 +172,7 @@ getMatchWords(MatchWordCnt, BinStr, ByteIndex, BslCnt, Utf8Code, FilterWs) -> |
|
|
|
%% 不是特殊词 |
|
|
|
getMatchWords(MatchWordCnt - 1, BinStr, ByteIndex - 1, 0, 0, [?RW | FilterWs]) |
|
|
|
end; |
|
|
|
Byte band 128 == 128 -> |
|
|
|
Byte bsr 6 == 2 -> |
|
|
|
Code = Byte band 63, |
|
|
|
getMatchWords(MatchWordCnt, BinStr, ByteIndex - 1, BslCnt + 6, Code bsl BslCnt + Utf8Code, FilterWs); |
|
|
|
true -> |
|
|
|