x00
MATLAB が正規表現で nul バイト ( ) を使用して何をしているのか説明できますか?
例:
>> regexp(char([0 0 0 0 0 0 0 1 0 0 10 0 0 0]),char([0 0 0 0 46 0 0 10]))
ans =
1 % current
4 % expected
>> regexp(char([0 0 0 1 0 0 0 1 0 0 10 0 0 0]),char([1 0 0 0 46 0 0 10]))
ans =
4 % current
4 % expected
>> regexp(char([0 0 0 1 0 0 0 1 0 0 10 0 0 0]),char([0 0 0 0 46 0 0 10]))
ans =
[] % current
[] % expected
>> regexp(char([0 0 0 0 10 0 0 1 0 0 10 0 0 0]),char([0 0 0 0 46 0 0 10]))
ans =
1 % current
[] % expected
>> regexp(char([0 0 0 0 0 0 0 1 0 0 10 0 0 0]),char([1 0 0 0 46 0 0 10]))
ans =
[] % current
[] % expected
答えは単純に、MATLAB 正規表現は印刷できない文字を処理するためのものではありませんが、その場合はエラーになると思います。
'.'
編集: 46 は、正規表現のワイルドカードと同じであると予想されます。
EDIT2:
>> regexp(char([0 0 0 0 50 0 0 100 0 0 90 0 0 0]),char([0 0 46 0 0 90]))
ans =
1 9
10 が特殊文字である可能性があることに気付いたので、これには印刷可能な nul バイトしかありません。50
5 番目の文字が一致しないため、これは 9 にのみ一致すると予想され0
ます。