matlab.unittest.constraints.Matches class

Пакет: 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';

The [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.