Main Content

isstrprop

入力文字列のどの文字が指定したカテゴリであるかを判別する

説明

TF = isstrprop(str,category) は入力テキストの文字が指定したカテゴリ (文字、数字、空白文字など) であるかどうかを判別します。たとえば、isstrprop('ABC123','alpha')16 列の logical 配列 [1 1 1 0 0 0] を返します。これは最初の 3 文字が文字であることを表します。

  • str が文字配列、string スカラーまたは数値配列の場合、isstrprop は logical 配列を返します。

  • str が文字ベクトルの cell 配列または string 配列の場合、isstrprop は logical ベクトルの cell 配列を返します。

TF = isstrprop(str,category,'ForceCellOutput',tf) は、tf1 (true) の場合、TF を cell 配列として返します。これは str が文字配列、string スカラー、数値配列のいずれかである場合でも同様です。tf の既定値は 0 (false) です。

すべて折りたたむ

文字ベクトルを作成し、どの要素が文字であるかを判別します。

chr = '123 Maple Street'
chr = 
'123 Maple Street'
TF = isstrprop(chr,'alpha')
TF = 1x16 logical array

   0   0   0   0   1   1   1   1   1   0   1   1   1   1   1   1

TF を使用して、chr の文字のインデックスを検索します。

idx = find(TF)
idx = 1×11

     5     6     7     8     9    11    12    13    14    15    16

chr(idx)
ans = 
'MapleStreet'

string 配列を作成します。次に、関数 isstrprop を使用して、どの文字がどのカテゴリに属するかを判別します。

string スカラーを作成して、どの文字が数字であるかを判別します。

str = "123 Maple Street"
str = 
"123 Maple Street"
TF = isstrprop(str,'digit')
TF = 1x16 logical array

   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0

非スカラーの string 配列を作成します。各 string のどの文字が空白文字であるかを判別します。isstrprop は cell 配列を返します。この cell 配列の各セルには str の string の結果が格納されます。

str = ["123 Maple St.";"456 Oak St."]
str = 2x1 string
    "123 Maple St."
    "456 Oak St."

TF = isstrprop(str,'wspace')
TF=2×1 cell array
    {[0 0 0 1 0 0 0 0 0 1 0 0 0]}
    {[    0 0 0 1 0 0 0 1 0 0 0]}

2 番目の string str(2) の結果を表示するには、TF{2} にインデックスを作成します。

TF{2}
ans = 1x11 logical array

   0   0   0   1   0   0   0   1   0   0   0

文字ベクトルの cell 配列を作成します。どの文字が空白文字であるかを判別します。

C = {'123 Maple St.';'456 Oak St.'}
C = 2x1 cell
    {'123 Maple St.'}
    {'456 Oak St.'  }

TF = isstrprop(C,'wspace')
TF=2×1 cell array
    {[0 0 0 1 0 0 0 0 0 1 0 0 0]}
    {[    0 0 0 1 0 0 0 1 0 0 0]}

文字ベクトルの句読点文字を検出します。isstrprop はどの文字が当該カテゴリに属するかを示す logical ベクトルを返します。isstrprop が cell 配列の logical ベクトルを返すように強制します。

chr = 'A horse! A horse! My kingdom for a horse!'
chr = 
'A horse! A horse! My kingdom for a horse!'
TF = isstrprop(chr,'punct','ForceCellOutput',true)
TF = 1x1 cell array
    {[0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]}

TF{1} を使用して、chr の句読点記号のインデックスを検索します。

find(TF{1})
ans = 1×3

     8    17    41

数値配列を作成します。どの数値が文字の文字コードに対応するかを判別します。

X = [77 65 84 76 65 66]
X = 1×6

    77    65    84    76    65    66

TF = isstrprop(X,'alpha')
TF = 1x6 logical array

   1   1   1   1   1   1

isstrprop はすべての数値を文字の文字コードとして識別します。関数 char を使用して、数値を対応する文字に変換します。

c = char(X)
c = 
'MATLAB'

入力引数

すべて折りたたむ

入力配列。string 配列、文字配列、文字ベクトルの cell 配列または数値配列として指定します。

str が数値配列の場合、isstrprop は数値を Unicode® 文字コードとして扱います。数値が倍精度または単精度浮動小数点数の場合、isstrprop はその数値を最も近い整数値に丸めてから、文字コードとして解釈します。

データ型: string | char | cell | double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

文字カテゴリ。文字ベクトルまたは string スカラーとして指定します。isstrprop は Unicode 標準で定義されたカテゴリに従って str の文字を分類します。

カテゴリ

説明

alpha

文字。

alphanum

文字または数字。

cntrl

制御文字 (char(0:20) など)。

digit

数字。

graphic

図形文字。isstrprop はすべての Unicode 文字を図形文字として扱います。ただし、次の文字を除きます。

  • 割り当てられていない文字

  • 空白文字

  • 行区切り

  • 段落区切り

  • 制御文字

  • プライベート ユーザー定義文字

  • サロゲート文字

lower

小文字。

print

図形文字と char(32)

punct

句読点。

wspace

空白文字。この範囲には、ANSI® C で定義されている空白文字 ({' ','\t','\n','\r','\v','\f'})、その他いくつかの Unicode 文字が含まれます。

upper

大文字。

xdigit

有効な 16 進数。

true または false。1 または 0 として指定します。

出力引数

すべて折りたたむ

true または false。logical 配列または logical ベクトルの cell 配列として返されます。

  • str が文字ベクトル、string スカラーまたは数値配列の場合、TF はどの文字が指定したカテゴリに属するかを示す logical 配列です。

  • str が文字ベクトルの cell 配列または string 配列の場合、TF は cell 配列です。str の各要素について、TF の対応するセルに、その要素のどの文字が指定したカテゴリに属するかを示す logical ベクトルが含まれます。

ヒント

wspace オプションが true を返す対象の空白文字には、いくつかの他の Unicode 文字に加えて、タブ、改行、垂直タブ、フォーム フィード、キャリッジ リターン、スペースなどがあります。wspace オプションが true を返すすべての文字を確認するには、次のコマンドを入力し、返された 10 進コードを Unicode リファレンスで検索します。

find(isstrprop(char(1):char(intmax('uint16')),'wspace'))

拡張機能

バージョン履歴

R2006a より前に導入