⊗ppPmRgRO 224 of 447 menu

Operadores de repetição de caracteres em expressões regulares

Há situações em que queremos indicar que um caractere se repete um determinado número de vezes. Se sabemos o número exato de repetições, podemos simplesmente escrevê-lo várias vezes - #aaaa#. Mas o que fazer se quisermos dizer o seguinte: repetir uma ou mais vezes?

Para isso, existem os operadores (quantificadores) de repetição: o sinal de mais + (uma ou mais vezes), o asterisco * (zero ou mais vezes) e o ponto de interrogação ? (zero ou uma vez). Esses operadores atuam sobre o caractere que está antes deles.

Vamos ver o funcionamento desses operadores com exemplos.

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' uma ou mais vezes, letra 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa+x#', '!', $str); ?>

Como resultado, será armazenado na variável o seguinte:

'xx ! ! ! xbx'

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' zero ou mais vezes, letra 'x':

<?php $str = 'xx xax xaax xaaax xbx'; $res = preg_replace('#xa*x#', '!', $str); ?>

Como resultado, será armazenado na variável o seguinte:

'! ! ! ! xbx'

Exemplo

Vamos encontrar todas as substrings pelo padrão letra 'x', letra 'a' zero ou uma vez, letra 'x':

<?php $str = 'xx xax xaax xbx'; $res = preg_replace('#xa?x#', '!', $str); ?>

Como resultado, será armazenado na variável o seguinte:

'! ! xaax xbx'

Problemas práticos

Dada a string:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Escreva uma expressão regular que encontre as strings segundo o padrão: letra 'a', letra 'b' uma ou mais vezes, letra 'a'.

Dada a string:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Escreva uma expressão regular que encontre as strings segundo o padrão: letra 'a', letra 'b' zero ou mais vezes, letra 'a'.

Dada a string:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Escreva uma expressão regular que encontre as strings segundo o padrão: letra 'a', letra 'b' uma vez ou nenhuma, letra 'a'.

Dada a string:

<?php $str = 'aa aba abba abbba abca abea'; ?>

Escreva uma expressão regular que encontre as strings 'aa', 'aba', 'abba', 'abbba', sem capturar 'abca' e 'abea'.

byruenespl