exponenta event banner

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

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

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

.
Представлен в R2006b