PHP - Expressões regulares

As expressões regulares nada mais são do que uma sequência ou padrão dos próprios caracteres. Eles fornecem a base para a funcionalidade de correspondência de padrões.

Usando a expressão regular, você pode pesquisar uma string específica dentro de outra string, pode substituir uma string por outra string e pode dividir uma string em vários pedaços.

O PHP oferece funções específicas para dois conjuntos de funções de expressão regular, cada um correspondendo a um certo tipo de expressão regular. Você pode usar qualquer um deles com base no seu conforto.

  • POSIX Expressões regulares
  • Expressões regulares do estilo PERL

POSIX Expressões regulares

A estrutura de uma expressão regular POSIX não é diferente daquela de uma expressão aritmética típica: vários elementos (operadores) são combinados para formar expressões mais complexas.

A expressão regular mais simples é aquela que corresponde a um único caractere, como g, dentro de strings, como g, haggle ou bag.

Vamos explicar alguns conceitos usados ​​na expressão regular POSIX. Depois disso, apresentaremos as funções relacionadas a expressões regulares.

Colchetes

Os colchetes ([]) têm um significado especial quando usados ​​no contexto de expressões regulares. Eles são usados ​​para encontrar uma variedade de caracteres.

Sr. Não Expressão e Descrição
1

[0-9]

Corresponde a qualquer dígito decimal de 0 a 9.

2

[a-z]

Corresponde a qualquer caractere de a minúsculo a z minúsculo.

3

[A-Z]

Corresponde a qualquer caractere de A maiúsculo a Z maiúsculo.

4

[a-Z]

Corresponde a qualquer caractere de a minúsculo a Z maiúsculo.

Os intervalos mostrados acima são gerais; você também pode usar o intervalo [0-3] para corresponder a qualquer dígito decimal de 0 a 3 ou o intervalo [bv] para corresponder a qualquer caractere minúsculo de b a v

Quantificadores

A frequência ou posição das sequências de caracteres entre colchetes e caracteres únicos pode ser indicada por um caractere especial. Cada personagem especial tem uma conotação específica. O +, *,?, {Int. range} e $ flags seguem uma seqüência de caracteres.

Sr. Não Expressão e Descrição
1

p+

Corresponde a qualquer string contendo pelo menos um p.

2

p*

Corresponde a qualquer string contendo zero ou mais p's.

3

p?

Corresponde a qualquer string contendo zero ou um p's.

4

p{N}

Corresponde a qualquer string contendo uma sequência de N p's

5

p{2,3}

Corresponde a qualquer string contendo uma sequência de dois ou três p's.

6

p{2, }

Corresponde a qualquer string contendo uma sequência de pelo menos dois p's.

7

p$

Corresponde a qualquer string com p no final dela.

8

^p

Corresponde a qualquer string com p no início.

Exemplos

Os exemplos a seguir irão esclarecer seus conceitos sobre a correspondência de caracteres.

Sr. Não Expressão e Descrição
1

[^a-zA-Z]

Corresponde a qualquer string que não contenha nenhum dos caracteres de a a z e de A a Z.

2

p.p

Corresponde a qualquer string contendo p, seguido por qualquer caractere, por sua vez seguido por outro p.

3

^.{2}$

Corresponde a qualquer string contendo exatamente dois caracteres.

4

<b>(.*)</b>

Corresponde a qualquer string entre <b> e </b>.

5

p(hp)*

Corresponde a qualquer string contendo ap seguido por zero ou mais instâncias da seqüência php.

Intervalos de caracteres predefinidos

Para sua conveniência de programação, vários intervalos de caracteres predefinidos, também conhecidos como classes de caracteres, estão disponíveis. As classes de caracteres especificam toda uma gama de caracteres, por exemplo, o alfabeto ou um conjunto inteiro -

Sr. Não Expressão e Descrição
1

[[:alpha:]]

Corresponde a qualquer string contendo caracteres alfabéticos de aA a zZ.

2

[[:digit:]]

Corresponde a qualquer string contendo dígitos numéricos de 0 a 9.

3

[[:alnum:]]

Corresponde a qualquer string contendo caracteres alfanuméricos de aA a zZ e 0 a 9.

4

[[:space:]]

Corresponde a qualquer string contendo um espaço.

Funções Regexp POSIX do PHP

O PHP atualmente oferece sete funções para pesquisar strings usando expressões regulares no estilo POSIX -

Sr. Não Descrição da função
1 ereg ()

A função ereg () procura uma string especificada por string para uma string especificada por padrão, retornando verdadeiro se o padrão for encontrado e falso caso contrário.

2 ereg_replace ()

A função ereg_replace () procura pela string especificada por padrão e substitui padrão por substituição, se encontrada.

3 eregi ()

A função eregi () pesquisa em uma string especificada por padrão por uma string especificada por string. A busca não diferencia maiúsculas de minúsculas.

4 eregi_replace ()

A função eregi_replace () opera exatamente como ereg_replace (), exceto que a busca por padrão em string não diferencia maiúsculas de minúsculas.

5 Dividido()

A função split () dividirá uma string em vários elementos, os limites de cada elemento com base na ocorrência do padrão na string.

6 spliti ()

A função spliti () opera exatamente da mesma maneira que seu irmão split (), exceto que não diferencia maiúsculas de minúsculas.

7 sql_regcase ()

A função sql_regcase () pode ser considerada uma função de utilidade, convertendo cada caractere na string do parâmetro de entrada em uma expressão entre colchetes contendo dois caracteres.

Expressões regulares do estilo PERL

Expressões regulares no estilo Perl são semelhantes às suas contrapartes POSIX. A sintaxe POSIX pode ser usada quase que alternadamente com as funções de expressão regular do estilo Perl. Na verdade, você pode usar qualquer um dos quantificadores introduzidos na seção POSIX anterior.

Vamos explicar alguns conceitos usados ​​nas expressões regulares PERL. Depois disso, iremos apresentá-lo com funções relacionadas a expressões regulares.

Metacaracteres

Um metacaractere é simplesmente um caractere alfabético precedido por uma barra invertida que atua para dar à combinação um significado especial.

Por exemplo, você pode pesquisar grandes quantias em dinheiro usando o metacaractere '\ d': /([\d]+)000/, Aqui \d irá pesquisar por qualquer string de caracteres numéricos.

A seguir está a lista de metacaracteres que podem ser usados ​​em expressões regulares de estilo PERL.

Character Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified

Modificadores

Vários modificadores estão disponíveis que podem tornar seu trabalho com expressões regulares muito mais fácil, como diferenciação de maiúsculas e minúsculas, pesquisa em várias linhas, etc.

Modifier Description
i 	Makes the match case insensitive
m 	Specifies that if the string has newline or carriage
	return characters, the ^ and $ operators will now
	match against a newline boundary, instead of a
	string boundary
o 	Evaluates the expression only once
s 	Allows use of . to match a newline character
x 	Allows you to use white space in the expression for clarity
g 	Globally finds all matches
cg 	Allows a search to continue even after a global match fails

Funções compatíveis com PERL Regexp do PHP

PHP oferece as seguintes funções para pesquisar strings usando expressões regulares compatíveis com Perl -

Sr. Não Descrição da função
1 preg_match ()

A função preg_match () procura por padrão na string, retornando verdadeiro se o padrão existir e falso caso contrário.

2 preg_match_all ()

A função preg_match_all () corresponde a todas as ocorrências de padrão na string.

3 preg_replace ()

A função preg_replace () opera exatamente como ereg_replace (), exceto que expressões regulares podem ser usadas nos parâmetros de entrada padrão e de substituição.

4 preg_split ()

A função preg_split () opera exatamente como split (), exceto que as expressões regulares são aceitas como parâmetros de entrada para o padrão.

5 preg_grep ()

A função preg_grep () pesquisa todos os elementos de input_array, retornando todos os elementos que correspondem ao padrão regexp.

6 preg_ quote ()

Citar caracteres de expressão regular