有没有人知道如何在matlab中检测非ASCII字符。
我想通过正则表达式检测是否存在非ASCII字符
if (regexpi('hello world%^&%','![A-Z]*'))display('You have non ascii characters')
但它似乎无法正常工作
更新: -
if (regexpi('hello word','^[A-Za-z0-9]*'))
display('You have chosen to overwrite!');
end
显示您已选择覆盖!
答案 0 :(得分:2)
字符%^&
是 ASCII字符,它们不是字母。如果您想测试是否有任何非字母,您可以这样做:
if (regexpi('hello world%^&%','[^ A-Z]'))
display('You have non-letter characters');
end
请注意,我在搜索表达式中包含了一个空格,以便在字符串中允许使用空格。要允许任何空白字符,请使用'[^\sA-Z]'
作为搜索表达式。
如果您想检查是否存在extended ASCII个字符,则甚至不需要正则表达式。您可以检查字符串中字符的任何数字编码是否大于或等于128,如下所示:
if any('hello world ÁÂÃÄÅ' >= 128)
display('You have extended ASCII characters');
end
答案 1 :(得分:1)
检查不可打印的ascii(包括xtended ascii)代码
[^\s\x{20}-\x{7e}]
检查扩展的ascii代码
[\x{80}-\x{ff}]