possessivePattern

Padrão que casa o máximo possível e nunca devolve caracteres.

Categoria: Language Fundamentals > Data Types

Sintaxe

p = possessivePattern(pat)

Casa pat de forma gulosa, sem retroceder.

Descrição

Padrões repetitivos comuns podem recuar: em lettersPattern + "b", a parte das letras abre mão do b final para que o padrão inteiro case. Um padrão possessivo mantém tudo o que tomou. Por isso possessivePattern(lettersPattern) + "b" nunca casa, pois as letras já consumiram o b.

A correspondência possessiva serve principalmente para ganhar velocidade e proibir casamentos alternativos indesejados. É o equivalente dos quantificadores possessivos (*+, ++) das expressões regulares.

Argumentos de entrada

pat
Um padrão ou texto.

Argumentos de saída

p
Um objeto pattern.

Exemplo

matches("aab", lettersPattern + "b")
matches("aab", possessivePattern(lettersPattern) + "b")
Saída
ans = logical
   1
ans = logical
   0

Veja também

pattern lettersPattern optionalPattern regexpPattern matches