如何在matlab中检查扩展的ascii字符

时间:2012-04-24 16:04:51

标签: regex matlab

有没有人知道如何在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

显示您已选择覆盖!

2 个答案:

答案 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}]