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')
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