有人可以解释 MATLABx00
在正则表达式中使用 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 预计'.'
与正则表达式通配符中的一样。
编辑2:
>> 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 字节。我希望这个只匹配 9 因为第五个字符50
不匹配0
。