IntroducaoExpressoes regulares sao expressoes que permitem especificar um padrao de string, ou seja, como os caracteres de uma string ficam dispostos em sequencia. Com este padrao, e possivel realizar checagens para saber se uma string segue determinado padrao, capturar pedacos da string com base no padrao, ou ainda substituir pedacos de uma string por outra sequencia de caracteres.As expressoes regulares sao um recurso extremamente util nao apenas para PHP, mas para varias outras linguagens, inclusive JavaScript. Porem, como possui uma sintaxe propria, nem todos programadores PHP tem familiaridade em montar ou entender expressoes regulares. Neste artigo veremos um compilado de informacoes uteis para se aprender a usar expressoes regulares em PHP.Onde usar expressoes regulares?Antes de saber montar as expressoes regulares, e preciso saber em que situacoes elas podem ser usadas. Para cada utilizacao existe uma funcao propria no PHP. Entao veja abaixo os tipos de utilizacao e as respectivas funcoes. Por enquanto, nao se preocupe com a expressao regular, que esta em vermelho.1 - Checar se uma string segue determinado padrao// Exemplo$string = 'ABC-1234';// Checar se a string segue o padrao de uma placa de carroif (preg_match('/^[A-Z]{3}\-[0-9]{4}$/', $string)) { // A string eh uma placa de carro valida} else { // A string nao eh uma placa de carro valida}2 - Capturar pedacos de uma string// Exemplo$cpf = '123.456.789-01';// Capturar o digito verificador do CPFif (preg_match('/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-([0-9]{2})$/', $cpf, $partes)) { $digito_verificador = $partes[1];}3 - Substituir pedacos de uma string por outra sequencia de caracteres// Exemplo 1: substituir vogais por "x":$string = 'abcdefgh123';$string2 = preg_replace('/[aeiou]/', 'x', $string);// Exemplo 2: remover numeros de uma string$string = 'abc123';$string2 = preg_replace('/[0-9]/', '', $string);// Exemplo 3: transformar um CPF com numeros em um CPF formatado$string = '12345678901';$string2 = preg_replace('/^([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})$/', '$1.$2.$3-$4', $string);// Exemplo 4: transformar uma data no formato YYYY-MM-DD em DD/MM/YYYY$string = '2015-02-01';$string2 = preg_replace('/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})$/', '$3/$2/$1', $string);// Exemplo 5: Converter as vogais de uma string para maiuscula$string = 'abcdefgh123';$string2 = preg_replace_callback( '/[aeiou]/', function($partes) { return strtoupper($partes[0]); }, $string);4 - Quebrar uma string em um array utilizando uma expressao regular// Exemplo: quebrar a string quando encontrar ponto ou virgula$string = 'abc, def. ghi';$array = preg_split('/[,\.]/', $string);Neste caso, a funcao tem a o mesmo comportamento da funcao explode do PHP, a diferenca e que ao inves de usar um delimitador fixo, e usada uma expressao regular.Como montar expressoes regulares?As expressoes regulares do PHP possuem a sintaxe similar as expressoes regulares da linguagem Perl, com pequenas diferencas e limitacoes. Por isso as funcoes citadas anteriormente fazem parte do modulo PCRE do PHP, que significa "Perl-Compatible Regular Expressions".Como vimos anteriormente, as expressoes regulares sao montadas na forma de string do PHP e passadas para funcoes preg_..., assim como ocorre por exemplo na execucao de queries SQL.Passo 1 - Escolher um delimitadorPara comecar, as expressoes regulares precisam ser delimitadas com algum caractere que e usado no inicio e no fim da expressao. Este caractere nao pode ser letra, numero, barra invertida (\) ou espaco. Normalmente e utilizado o caractere barra (/), o caractere cerquilha (#) ou o caractere arroba (@). Tambem e permitido, mas menos comum, usar abre/fecha parenteses, abre/fecha colchetes, abre/fecha chaves,