possessivePattern

Совпадайте с шаблоном без отслеживания в обратном порядке

Описание

пример

newpat = possessivePattern(pat) создает шаблон, который не отслеживает в обратном порядке в pat однажды pat соответствия.

Если символ может быть соответствующим больше чем одним шаблоном в выражении, таком как символы цифры с alphanumericsPattern + digitsPattern, все возможные комбинации соответствия могут быть протестированы в попытке найти успешное соответствие. Этот процесс называется backtracking.

possessivePattern предотвращает отслеживание в обратном порядке, поэтому однажды possessivePattern соответствия, совпадающий текст больше не может быть соответствующим другими частями выражения шаблона, даже если это заставляет шаблону не удаваться соответствовать. Используйте possessivePattern улучшать производительность путем ограничения возможных комбинаций шаблона, протестированных, чтобы найти соответствие.

Примеры

свернуть все

Используйте possessivePattern так, чтобы, если притяжательный фрагмент шаблона соответствовал, нет никакого отслеживания в обратном порядке. Это предотвращает другие шаблоны в выражении шаблона, чтобы соответствовать.

Создайте txt как строка, состоявшая из буквы и символов цифры. Создайте nonpossessive как шаблон, который совпадает с буквами или цифрами с alphanumericsPattern сопровождаемый цифрами с digitsPattern. Самостоятельно, alphanumericsPattern совпадает с целой строкой, но она позволяет отслеживать в обратном порядке так, чтобы digitsPattern может соответствовать также.

txt = "abc123";
nonpossessive = alphanumericsPattern + digitsPattern;
successfulMatch = contains(txt,nonpossessive)
successfulMatch = logical
   1

Сделайте alphanumericsPattern притяжательный. Собственничество предотвращает отслеживание в обратном порядке, таким образом, alphanumericsPattern совпадает с целой строкой и не отслеживает в обратном порядке, чтобы позволить digitsPattern соответствовать также. Этот атрибут вызывает possessive не удаваться совпадать с txt.

possessive = possessivePattern(alphanumericsPattern) + digitsPattern;
unsuccessfulMatch = contains(txt,possessive)
unsuccessfulMatch = logical
   0

Входные параметры

свернуть все

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

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

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

свернуть все

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

Введенный в R2020b