exponenta event banner

matlab.unittest.constraints. Класс матчей

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.BooleanConstraint

Ограничение, указывающее строку, соответствует регулярному выражению

Строительство

Matches(expr) создает ограничение, указывающее, что строковый скалярный или символьный вектор соответствует регулярному выражению. Ограничение выполняется только в том случае, если фактическое значение соответствует заданному регулярному выражению. expr.

Matches(expr,Name,Value) предоставляет ограничение с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

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

expr

Регулярное выражение, действительное значение которого должно соответствовать ограничению, заданному как строковый скалярный или символьный вектор. expr может включать символы новой строки.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

'IgnoringCase'

Индикатор для игнорирования регистра, указанный как false или true (logical 0 или 1).

По умолчанию: false

'WithCount'

Число совпадений фактического значения expr, указано как положительное целое число.

Свойства

Expression

Регулярное выражение, которое должно совпадать с фактическим значением, указанным во входном аргументе, expr.

IgnoreCase

Индикатор, если ограничение нечувствительно к регистру, указанному в аргументе пары имя-значение, 'IgnoringCase'.

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте тестовый пример для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.Matches

testCase = TestCase.forInteractiveUse;

Проверка фактического значения 'Epsilon Eridani' матчи 'eps'.

testCase.verifyThat('Epsilon Eridani', Matches('^eps'));
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    Matches failed.
    --> The value does not match the regular expression.
    
    Actual char:
        Epsilon Eridani
    Regular Expression:
        ^eps

Чтобы выполнить ограничение, настройте его без учета регистра.

testCase.verifyThat('Epsilon Eridani', Matches('^eps', ...
    'IgnoringCase', true));
Verification passed.

Определите регулярное выражение, которому должно соответствовать фактическое значение.

expr = 'Some[Tt]?ext';

[Tt]? содержащееся в регулярном выражении указывает, что 'T' или 't' соответствует в этом месте 0 или 1 раз.

Проверьте, что фактические значения, 'SomeText' и 'Sometext', удовлетворяют ограничению.

testCase.verifyThat('SomeText', Matches(expr));
testCase.verifyThat('Sometext', Matches(expr));
Verification passed.
Verification passed.

Проверка фактического значения 'SomeText Sometext Someext' соответствует регулярному выражению три раза.

testCase.verifyThat('SomeText Sometext Someext', Matches(expr, ...
    'WithCount', 3));
Verification passed.

Проверка фактического значения 'sometext' не удовлетворяет ограничению.

testCase.verifyThat('sometext', ~Matches(expr));
Verification passed.