Escolar Documentos
Profissional Documentos
Cultura Documentos
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 ("([AZ]+)", $string,$regs);
13
?>
Exemplo
<?php
$data = “26102013”;
if(ereg ("([09]{1,2})([09]{1,2})([09]{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 )
19
ereg_replace
<?PHP
$string = “IFSP Guarulhos”;
// Troca IFSP por SP na string.
$a = ereg_replace ("IFSP", "SP", $string);
?>
20