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