0

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

表示 上書きすることを選択しました!

4

2 に答える 2

2

文字%^& ASCII 文字であり、文字ではありません。非文字があるかどうかをテストしたい場合は、次のようにすることができます。

if (regexpi('hello world%^&%','[^ A-Z]'))
  display('You have non-letter characters');
end

文字列にスペースを使用できるように、検索式にスペースを含めたことに注意してください。任意の空白文字を許可する'[^\sA-Z]'には、検索式として を使用します。

代わりに、拡張 ASCII文字の存在を確認したい場合は、正規表現さえ必要ありません。次のように、文字列内の文字の数値エンコーディングのいずれかが 128 以上であるかどうかを確認できます。

if any('hello world ÁÂÃÄÅ' >= 128)
  display('You have extended ASCII characters');
end
于 2012-04-24T16:53:16.113 に答える
1

印刷できないASCII(拡張ASCIIを含む)コードをチェックするには

[^\s\x{20}-\x{7e}]

拡張ASCIIコードだけをチェックするには

[\x{80}-\x{ff}]
于 2012-04-24T17:26:33.470 に答える