Você está na página 1de 20

Expressões Regulares

Prof. Gláucya Boechat


gcbcht@gmail.com
Expressão Regular
● Expressão regular (regular expression –
regex)
– É uma sequência de caracteres que formam um
padrão de busca.
● Usado em casamento de padrões em strings.

2
Expressão Regular
● você pode também usar delimitadores
Perl-style (), {}, [], e <>
– “^início”
● String que começa com “início”
– “fim$”
● String que termine com “fim”
– “^string$”
● String que começa e termina com “string”
– “abc”
● String que possui a sequência de caracteres “abc”
3
Expressão Regular
● "abc+"
– String com "ab" seguido de um ou vários "c" ("abc", "abcc" ...)
● "abc*"
– String com "ab" seguido de zero ou vários "c" ("ab", "abc" ...)
● "abc?"
– String com "ab" seguido de zero ou um "c" ("ab", "abc", “xyabc, ...)
● "^abc+"
– String começando com "ab" seguido de um ou vários "c" ("abc",
"abcc" ...)

4
Quantificação de caracteres
● As chaves {X,Y} quantificam sequência de
caracteres.
– abc{2}
● cadeia com "ab" seguido de dois "c"
– "abcc"
– abc{2,}
● cadeia com "ab" seguido de dois "c" ou mais
– "abcc","abccc", etc. (abc{1,} = abc+)
– abc{2,4}
● cadeia com "ab" seguido de 2, 3 ou 4 "c"
– "abcc", "abccc" ,"abcccc"

5
Quantificação de caracteres
● * equivale à {0,}
● + equivale à {1,}
● ? equivale à {0,1}

6
Quantificação de caracteres
● Sequência de caracteres ( )
– a(bc)*
● String com “a” seguido de zero ou mais “bc”
– “a”, “abc”, “abcbc” , .... “abcbcbcbcbcbc”

7
Operador lógico OU
● O operador OU é representado pelo caracter “|”
– um | o
● "um" ou "o"
– "(um|o) cão"
● "um cão" ou "o cão"
– "(a|b)+"
● Sequência de "a" ou de "b"
– "(a|b)*"
● Pode ou não possui uma sequência de "a" ou de "b"

8
Caracteres permitidos
● .
– String com um único caractere qualquer
● e.tendido: estendido, extendido, etc.
● [...]
– String com uma lista de caracteres permitidos
● [ab] = a | b
● [a-c] = a | b | c
● e[sx]tendido: estendido ou extendido
● ([A-Z]{3}|[0-9]{4}): cadeia com três letras ou quatro
números
9
Caracteres proibidos
● [^...]
– String com uma lista de caracteres proibidos
● e[^x]tendido: estendido, e9tendido, mas nunca
extendido.

10
Função ereg
● Desempenha o casamento de uma expressão
regular.
– int ereg ( string $pattern , string $string [, array
&$regs ] )
● Busca em string a expressão regular dada em pattern.
– ereg() retorna o comprimento da sequência
encontrada ou
● FALSE se não foram encontrados casamentos ou ocorreu
um erro.
● Se o parâmetro opcional regs não for passado esta
função retorna 1.
11
Parâmetros de ereg
● pattern
– O padrão a ser buscado.
● string
– A string de entrada.
● regs
– Se regs é passado como parâmetro, este é preenchido com
os resultados da busca. $regs[0] conterá o texto que casa
com o padrão e os subsequentes armazenam os textos de
subpadrões entre parênteses.

12
Exemplos
<?php
$string = “IFSP ­ Guarulhos”;

//Verifica se "IFSP" existe em qualquer lugar de $string.
$a = ereg ("IFSP", $string);

//Verifica se "IFSP" existe no início de $string.
// $regs[0] = IFSP 
$b =  ereg ("^IFSP", $string, $regs);

//Verifica se "IFSP" existe no final de $string.
$c =  ereg ("IFSP$", $string);

/*Verifica se existe na $string qualquer sequência com os 
     caracteres: A à Z. $regs[0] = IFSP e $regs[1] = IFSP*/
ereg ("([A­Z]+)", $string,$regs);
13
?> 
Exemplo
<?php
$data = “26­10­2013”;
   if(ereg ("([0­9]{1,2})­([0­9]{1,2})­([0­9]{4})",            
$data, $regs)) {
    echo "Data: $regs[1]/$regs[2]/$regs[3]";
} else {
     echo "Formato inválido: $data";
}
?> 

14
Palavras-chave (ereg)
● Algumas palavras-chave que podem ser usadas com a função
ereg:
– [:digit:] Apenas os digitos 0 à 9
– [:alnum:] Qualquer caractere alfanumérico: 0 à 9 ou A à Z ou a à z.
– [:alpha:] Qualquer caractere do alfabeto: A à Z ou a à z.
– [:punct:] Símbolos de pontuação: . , " ' ? ! ; :
– [:space:] Qualquer caractere de espaçamento: espaço simples, tab.
– [:upper:] Qualquer caractere do alfabeto em caixa alta: A à Z.
– [:lower:] Qualquer caractere do alfabeto em caixa baixa: a à z.

● Exemplo

ereg ("([[:alnum:]]+)", $string);
15
ereg
● ereg é sensível à caixa. eregi() é a alternativa
não sensível à caixa.
● A partir do PHP 5.3 o ereg foi definida como
obsoleta (deprecated) e portanto recomenda-
se o uso de prog_match em seu lugar.

16
Função preg_match
● Desempenha o casamento de uma expressão regular.
– int preg_match ( string $pattern , string $subject [, array
&$matches [, int $flags = 0 [, int $offset = 0 ]]] )
● Busca na string subject a expressão regular dada em pattern.
● pattern deve ter a forma /abc/.
– /abc/1 determina que a busca será feita sem sensibilidade à caixa.
– preg_match() retorna 1 se o padrão casa com o subject, 0 se não
casa e FALSE se ocorreu um erro.

17
Parâmetros de preg_match
● pattern
– O padrão a ser buscado.
● subject
– A string de entrada.
● matches
– Se matches é passado como parâmetro, este é preenchido
com os resultados da busca. $matches[0] conterá o texto
que casa com o padrão e os subsequentes armazenam os
textos de subpadrões entre parênteses.

18
ereg_replace
● Desempenha o casamento de uma expressão
regular substituindo se casar pelo texto em
$replacement.

string ereg_replace(string $pattern,                      
                   string $replacement, string $string )

– A função retorna a string modificada

19
ereg_replace

<?PHP
$string = “IFSP ­ Guarulhos”; 
// Troca IFSP por SP na string.
$a = ereg_replace ("IFSP", "SP", $string);
?>

20

Você também pode gostar