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