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

Примеры

свернуть все

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

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 - массив ячеек из векторов символов.

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

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

.
Введенный в R2006b