Main Content

validatestring

テキストの有効性をチェック

説明

matchedStr = validatestring(str,validStrings) は、str の有効性を validStrings と照合してチェックします。テキストが明確で、validStrings の任意の要素と大文字小文字を区別せずに一致している場合、このテキストは有効です。関数 validatestring は、先頭の複数文字の部分一致をサポートしています。

str が有効である場合、validatestring は一致するテキストを返します。そうでない場合、MATLAB® はエラーをスローします。

matchedStr = validatestring(str,validStrings,argIdx) は、生成されるエラー メッセージの一部として関数の引数リストに入力の位置を含めます。この構文を使用して、生成されるエラー メッセージの形式を設定します。

matchedStr = validatestring(str,validStrings,funcName) は、生成されるエラー識別子に指定された関数の名前を含めます。

matchedStr = validatestring(str,validStrings,funcName,varName) は、生成されるエラー メッセージに指定された変数の名前を含めます。この構文を使用して、生成されるエラー メッセージの形式を設定します。

matchedStr = validatestring(str,validStrings,funcName,varName,argIdx) は、生成されるエラー メッセージの一部として関数の引数リストに入力の位置を含めます。この構文を使用して、生成されるエラー メッセージの形式を設定します。

すべて折りたたむ

string が有効な値のセットに含まれているかどうかをチェックします。

validStrings = ["wind","wonder","when"];
str = "wind";
validStr = validatestring(str,validStrings)
validStr = 

    "wind"

"WON" が、validStrings で定義された有効な値のセットに含まれているかどうかをチェックします。この string は、大文字小文字を区別せずに "wonder" と部分一致するテキストです。

str = "WON";
validStr = validatestring(str,validStrings)
validStr = 

    "wonder"

複数の部分一致があり、どの string も他の string の部分文字列ではない場合、validatestring はエラーをスローします。

validStrings = ["showcase","show up","showtimes"];
str = "show";
validStr = validatestring(str,validStrings)
Expected input to match one of these values:

'showcase', 'show up', 'showtimes'

The input, show, matched more than one valid value.

しかし、複数の部分一致があり、どの string も他の string の部分文字列である場合、validatestring は最も短い一致を返します。

validStrings = ["righteously","right","righteous"];
str = "rig";
validStr = validatestring(str,validStrings)
validStr = 

    "right"

findArea.m というファイルに関数を作成します。shape の検証では、生成されるエラー メッセージの一部として関数の引数リストに入力の位置を含めます。また、units の検証では、エラー メッセージ内の変数名 ('units') とエラー識別子内のファイル名も含めます。ファイル名の検出には関数 mfilename を使用します。

function a = findArea(shape,h,w,units)
    expectedShapes = {'square','rectangle','triangle'};
    expectedUnits = {'cm','m','in','ft','yds'};
    
    shapeName = validatestring(shape,expectedShapes,1);
    unitAbbrev = validatestring(units,expectedUnits,mfilename,'units',4);
    
    switch shapeName
        case {'square','rectangle'}
            a = h*w;
        case {'triangle'}
            a = h*w/2;
        otherwise
            error('Unknown shape passing validation.')
    end
end

有効な形状名を指定して関数を呼び出します。'Rect' の値は、大文字小文字を区別せずに 'rectangle' の部分一致であるため、有効です。

a = findArea('Rect',10,3,'cm')
a =

    30

無効な形状名を指定して関数を呼び出します。エラー メッセージには無効なテキストの位置が含まれています。ここで、無効なテキストは最初の入力引数です。

a = findArea('octagon',7,13,'in')
Error using findArea (line 5)
Expected input number 1 to match one of these values:

'square', 'rectangle', 'triangle'

The input, 'octagon', did not match any of the valid values.

無効な単位を指定して関数を呼び出します。エラー メッセージには、変数名と、無効なテキストの位置が含まれています。無効なテキストは 4 番目の入力引数です。

a = findArea('TRI',10,3,'mi')
Error using findArea (line 6)
Expected input number 4, units, to match one of these values:

'cm', 'm', 'in', 'ft', 'yds'

The input, 'mi', did not match any of the valid values.

mException を使用してエラー識別子を表示すると、それにファイル名が含まれています。

id = MException.last.identifier
id =

    'MATLAB:findArea:unrecognizedStringChoice'

入力引数

すべて折りたたむ

検証するテキスト。string スカラーまたは文字ベクトルとして指定します。

例: 'textToValidate'

例: "otherTextToValidate"

照合先のテキスト。string 配列または文字ベクトルの cell 配列として指定します。

例: ["value1","value2"]

例: {'val1','val2',val3'}

検証する入力をもつ関数の名前。string スカラーまたは文字ベクトルとして指定します。空の文字ベクトル '' または string の <missing> を指定した場合、関数 validatestringfuncName の入力を無視します。

例: "myFunctionName"

例: 関数 mfilename の呼び出し。コード validatestring(units,expectedUnits,mfilename) のように使用

検証する入力変数の名前。string スカラーまたは文字ベクトルとして指定します。空の文字ベクトル '' または string の <missing> を指定した場合、関数 validatestringvarName の入力を無視します。

例: "inputVariable1"

例: 'variableB'

検証する入力引数の位置。正の整数として指定します。

出力引数

すべて折りたたむ

一致したテキスト。validStrings が string 配列の場合は string スカラー、validStrings が文字ベクトルの cell 配列の場合は文字ベクトルとして返されます。

例 — 'ball' を一致させます。. .戻り値一致の種類
ball, barn, bellball完全一致
balloon, barnballoon部分一致 (先頭文字)
ballo, balloo, balloonballo (最も短い一致)複数の部分一致 (各文字ベクトルが別の文字ベクトルのサブセットである場合)
balloon, balletエラー一意の文字ベクトルとの部分一致が複数
barn, bellエラー該当なし

拡張機能

バージョン履歴

R2006b で導入