asFewOfPattern

Padrão que casa outro padrão repetidamente, usando o mínimo de repetições possível.

Categoria: Language Fundamentals > Data Types

Sintaxe

newPat = asFewOfPattern(pat)

Casa pat uma ou mais vezes, de forma preguiçosa (lazy).

newPat = asFewOfPattern(pat, minLength)

Exige pelo menos minLength repetições.

Descrição

O resultado repete pat, mas, quando faz parte de um padrão maior, para assim que o restante do padrão consegue casar. É a versão preguiçosa de asManyOfPattern, que consome o máximo de texto possível.

Sozinho, sem nada depois, o casamento é o menor permitido, então minLength define quanto texto é consumido a cada vez. Combine com outros padrões usando +.

Argumentos de entrada

pat
Um padrão, ou texto convertido em padrão.
minLength
Número mínimo de repetições.

Argumentos de saída

newPat
Um objeto pattern.

Exemplo

Guloso e preguiçoso em contexto

extract('xabbby', 'a' + asManyOfPattern('b'))
extract('xabbby', 'a' + asFewOfPattern('b') + 'y')
Saída
ans = "abbb"
ans = "abbby"

A parte preguiçosa ainda precisa alcançar o y, então consome os três b.

Observações

Usada sozinha ou no fim de um padrão sem minLength, o MatLivre pode casar menos repetições do que o esperado; coloque-a antes de outro padrão ou passe minLength.

Veja também

asManyOfPattern wildcardPattern optionalPattern extract pattern