正则表达式中的nul字节MATLAB
发布时间:2020-12-14 06:36:37 所属栏目:百科 来源:网络整理
导读:有人可以用正则表达式解释什么MATLAB正在使用nul字节(x00)吗? 例子: 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]))an
有人可以用正则表达式解释什么MATLAB正在使用nul字节(x00)吗?
例子: >> 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字节。我希望这个只能匹配9,因为第五个字符50不匹配0。
这个bug可能已经修复了。我从Matlab Central测试了几个版本的例子:
在R2013b: >> regexp(char([0 0 1 0 41 41 41 41 41 41]),char([0 '.' 0 40 40 40 40])) ans = 2 在R2015a: >> regexp(char([0 0 1 0 41 41 41 41 41 41]),char([0 '.' 0 40 40 40 40])) ans = 2 在R2016a: >> regexp(char([0 0 1 0 41 41 41 41 41 41]),char([0 '.' 0 40 40 40 40])) ans = [] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |