⊗ppPmRgOC 241 of 447 menu

O comando 'ou' em expressões regulares PHP

Nesta lição, vamos analisar o comando |, que representa uma variante mais poderosa de OU em comparação com o comando []. Este comando permite dividir a expressão regular em várias partes. Assim, a correspondência pode se encaixar em uma parte da regex ou em outra. Vamos ver exemplos.

Exemplo

Neste exemplo, o padrão de busca é: três letras 'a' ou três letras 'b':

<?php $str = 'aaa bbb abb'; $res = preg_replace('#a{3}|b{3}#', '!', $str); ?>

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

'! ! abb'

Exemplo

Neste exemplo, o padrão de busca é: três letras 'a' ou 1 ou mais letras 'b':

<?php $str = 'aaa bbb bbbb bbbbb axx'; $res = preg_replace('#a{3}|b+#', '!', $str); ?>

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

'! ! ! ! axx'

Exemplo

Neste exemplo, o padrão de busca é: uma ou mais letras ou três dígitos:

<?php $str = 'a ab abc 1 12 123'; $res = preg_replace('#[a-z]+|\d{3}#', '!', $str); ?>

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

'! ! ! 1 12 !'

Exemplo

A barra vertical pode dividir a expressão regular não em duas partes, mas em qualquer número de partes:

<?php $str = 'aaa bbb ccc ddd'; $res = preg_replace('#a+|b+|c+#', '!', $str); ?>

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

'! ! ! ddd'

Exemplo

Se a barra vertical estiver dentro de parênteses, então o 'ou' funciona apenas dentro desses parênteses. Por exemplo, vamos encontrar strings seguindo o padrão: no início há 'a', ou 'b' uma ou mais vezes, seguido por duas letras 'x':

<?php $str = 'axx bxx bbxx exx'; $res = preg_replace('#(a|b+)xx#', '!', $str); ?>

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

'! ! ! exx'

Problemas práticos

Dada a string:

<?php $str = 'aeeea aeea aea axa axxa axxxa'; ?>

Escreva uma expressão regular que encontre as strings seguindo o padrão: nas extremidades há letras 'a', e entre elas - ou a letra 'e' qualquer número de vezes ou a letra 'x' qualquer número de vezes.

Dada a string:

<?php $str = 'aeeea aeea aea axa axxa axxxa'; ?>

Escreva uma expressão regular que encontre as strings seguindo o padrão: nas extremidades há letras 'a', e entre elas - ou a letra 'e' duas vezes ou a letra 'x' qualquer número de vezes.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar