|
|
@ -22,7 +22,6 @@ doMatchMs(<<>>, _, _Index, MatchList) -> |
|
|
|
doMatchMs(<<Word/utf8, Tail/binary>>, State, Index, MatchList) -> |
|
|
|
case acsSpw:getSpw(Word) of |
|
|
|
true -> |
|
|
|
%% 特殊字符跳过 且Index 不加 1 |
|
|
|
doMatchMs(Tail, State, Index, MatchList); |
|
|
|
_ -> |
|
|
|
{NewState, NewMatchList} = matchWordMs(Word, State, Index, MatchList), |
|
|
@ -79,7 +78,6 @@ doMatchIs(<<>>, _) -> |
|
|
|
doMatchIs(<<Word/utf8, Tail/binary>>, State) -> |
|
|
|
case acsSpw:getSpw(Word) of |
|
|
|
true -> |
|
|
|
%% 特殊字符跳过 |
|
|
|
doMatchIs(Tail, State); |
|
|
|
_ -> |
|
|
|
case matchWordIs(Word, State) of |
|
|
@ -163,13 +161,10 @@ getMatchWords(MatchWordCnt, BinStr, ByteIndex, BslCnt, Utf8Code, FilterWs) -> |
|
|
|
Byte = binary:at(BinStr, ByteIndex), |
|
|
|
if |
|
|
|
Byte < 128 -> |
|
|
|
%% ASCII 查看是否特殊字符 是就维护原样 |
|
|
|
case acsSpw:getSpw(Byte) of |
|
|
|
true -> |
|
|
|
%% 是特殊词 |
|
|
|
getMatchWords(MatchWordCnt, BinStr, ByteIndex - 1, 0, 0, [Byte | FilterWs]); |
|
|
|
_ -> |
|
|
|
%% 不是特殊词 |
|
|
|
getMatchWords(MatchWordCnt - 1, BinStr, ByteIndex - 1, 0, 0, [?RW | FilterWs]) |
|
|
|
end; |
|
|
|
Byte bsr 6 == 2 -> |
|
|
@ -191,10 +186,8 @@ getMatchWords(MatchWordCnt, BinStr, ByteIndex, BslCnt, Utf8Code, FilterWs) -> |
|
|
|
FullWord = Code bsl BslCnt + Utf8Code, |
|
|
|
case acsSpw:getSpw(FullWord) of |
|
|
|
true -> |
|
|
|
%% 是特殊词 |
|
|
|
getMatchWords(MatchWordCnt, BinStr, ByteIndex - 1, 0, 0, [FullWord | FilterWs]); |
|
|
|
_ -> |
|
|
|
%% 不是特殊词 |
|
|
|
getMatchWords(MatchWordCnt - 1, BinStr, ByteIndex - 1, 0, 0, [?RW | FilterWs]) |
|
|
|
end |
|
|
|
end. |
|
|
@ -219,7 +212,6 @@ doMatchRs(<<>>, _TotalSize, _CurIndex, _State, MatchList) -> |
|
|
|
doMatchRs(<<Word/utf8, Tail/binary>>, TotalSize, CurIndex, State, MatchList) -> |
|
|
|
case acsSpw:getSpw(Word) of |
|
|
|
true -> |
|
|
|
%% 特殊字符跳过 且CurIndex 不加 1 |
|
|
|
doMatchRs(Tail, TotalSize, CurIndex, State, MatchList); |
|
|
|
_ -> |
|
|
|
{NewState, MatchCnt} = matchWordRs(Word, State, 0), |
|
|
|