exponenta event banner

optionalPattern

Сделать шаблон необязательным для соответствия

Синтаксис

Описание

пример

newpat = optionalPattern(pat) создает образец, соответствующий pat когда это возможно, но соответствует pat не требуется для успешного сопоставления выражения шаблона. Эта функция используется совместно с другими функциями шаблонов для построения шаблонов, которые являются более гибкими в соответствии с требованиями.

Примеры

свернуть все

Использовать optionalPattern для обозначения образца как необязательного для сопоставления.

Создать txt в виде строки. Создать образец, pat, что соответствует "foo" и будет опционально соответствовать "bar" при условии, что ему предшествует "foo". Извлеките образец.

txt = "foo bar foobar";
pat = "foo" + optionalPattern("bar");
extract(txt,pat)
ans = 2x1 string
    "foo"
    "foobar"

Создание шаблона, соответствующего комбинациям букв и периодов после "@". Использовать optionPattern для соответствия поддоменам, если они имеются. Если поддомен отсутствует, optionalPattern не препятствует совпадению, если другие условия pat встречаются. Извлеките образец.

emails = ["Sue_B@nonprofit.org"
          "JohnDRoc12@business.com"
          "R.Franklin@biology.university.org"];
pat = lookBehindBoundary("@") + optionalPattern(lettersPattern + ".") + lettersPattern + "." + lettersPattern;
domains = extract(emails,pat)
domains = 3x1 string
    "nonprofit.org"
    "business.com"
    "biology.university.org"

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

свернуть все

Входной шаблон, заданный как pattern, строковый массив, символьный вектор или массив ячеек символьных векторов.

Типы данных: char | string | pattern | cell

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

свернуть все

Выходной шаблон, возвращаемый как pattern или массив объектов массива.

Представлен в R2020b