validatestring

Проверяйте валидность текста

Синтаксис

matchedStr = validatestring(str,validStrings)
matchedStr = validatestring(str,validStrings,argIdx)
matchedStr = validatestring(str,validStrings,funcName)
matchedStr = validatestring(str,validStrings,funcName,varName)
matchedStr = validatestring(str,validStrings,funcName,varName,argIdx)

Описание

пример

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) включает положение входа в вашем списке аргументов функции как часть любых сгенерированных сообщений об ошибке. Используйте этот синтаксис, чтобы отформатировать любые сгенерированные сообщения об ошибке.

Примеры

свернуть все

Проверяйте, находится ли строка в наборе допустимых значений.

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

    "wind"

Проверяйте, находится ли "WON" в наборе допустимых значений, заданных validStrings. Строка является нечувствительным к регистру, частичным соответствием к "wonder".

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

    "wonder"

Если несколько частичных соответствий существуют, и каждая строка не является подстрокой другого, то 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.

Однако, если несколько частичных соответствий существуют, и каждая строка является подстрокой другого, то 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.

Вызовите функцию с недопустимым модулем. Сообщение об ошибке содержит имя переменной и положение недопустимого текста. Недопустимый текст является четвертым входным параметром.

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'

Входные параметры

свернуть все

Текст, чтобы подтвердить, заданный как скаляр строки или вектор символов.

Пример: 'textToValidate'

Пример: "otherTextToValidate"

Текст, чтобы соответствовать, заданный как массив строк или массив ячеек из символьных векторов.

Пример: ["value1","value2"]

Пример: {'val1','val2',val3'}

Имя функции, чей вход, чтобы подтвердить, заданный как скаляр строки или вектор символов. Если вы задаете пустой символьный вектор '' или строка <missing>, то функция validatestring игнорирует вход funcName.

Пример: "myFunctionName"

Пример: Вызовите к функции mfilename, как в коде validatestring(units,expectedUnits,mfilename)

Имя входной переменной, чтобы подтвердить, заданный как скаляр строки или вектор символов. Если вы задаете пустой символьный вектор '' или строка <missing>, то функция validatestring игнорирует вход varName.

Пример: "inputVariable1"

Пример: 'variableB'

Положение входного параметра, чтобы подтвердить, заданный как положительное целое число.

Выходные аргументы

свернуть все

Совпадающий текст, возвращенный как скаляр строки, если validStrings является массивом строк или как вектором символов, если validStrings является массивом ячеек из символьных векторов.

Пример — совпадает с 'ball'...Возвращаемое значениеТип соответствия
ball, barn, bellballТочное совпадение
balloon, barnballoonЧастичное соответствие (начальные символы)
ballo, balloo, balloonballo (самое короткое соответствие)Несколько частичных соответствий, где каждый вектор символов является подмножеством другого
balloon, balletОшибкаНесколько частичных соответствий к уникальным векторам символов
barn, bellОшибкаНикакое соответствие

Расширенные возможности

Смотрите также

|

Представленный в R2006b