Classes de caracteres Regex

Resumo : neste tutorial, você aprenderá sobre as classes de caracteres regex e como criar expressões regulares com padrões que correspondam a um conjunto de caracteres.

Uma classe de caracteres é um conjunto de caracteres, por exemplo, alfabetos, números, espaços em branco.

Uma classe de caracteres permite criar uma expressão regular com um padrão que corresponde a uma string com um ou mais caracteres em um conjunto.

Observe que uma classe de caracteres também é conhecida como conjunto de caracteres.

A classe de caracteres de dígito

O \drepresenta a classe de caracteres de dígito que corresponde a qualquer dígito de 0 a 9. O exemplo a seguir usa a classe de caracteres de dígito que corresponde a qualquer dígito em um número de telefone:

<?php

$pattern = '/\d/';
$phone = '(650)-543-2100';

if (preg_match_all($pattern, $phone, $matches)) {
    print_r($matches[0]);
}Linguagem de código:  PHP  ( php )

Saída:

Array
(
    [0] => 6
    [1] => 5
    [2] => 0
    [3] => 5
    [4] => 4
    [5] => 3
    [6] => 2
    [7] => 1
    [8] => 0
    [9] => 0
)Linguagem de código:  PHP  ( php )

Neste exemplo, a preg_match_all()função retorna 10 dígitos.

A palavra classe de personagem

O \wrepresenta a classe de caracteres da palavra. Corresponde a um único caractere ASCII, incluindo alfabetos latinos, dígitos e sublinhado ( _).

O exemplo a seguir usa a palavra classe de caracteres para corresponder a todos os caracteres, incluindo alfabetos latinos e dígitos:

<?php

$pattern = '/\w/';
$str = 'PHP 8.0';

if (preg_match_all($pattern, $str, $matches)) {
    print_r($matches[0]);
}Linguagem de código:  PHP  ( php )

Saída:

Array
(
    [0] => P
    [1] => H
    [2] => P
    [3] => 8
    [4] => 0
)Linguagem de código:  PHP  ( php )

Observe que a expressão regular /\w/não corresponde aos espaços e ao ponto ( .).

A classe de caracteres de espaço em branco

As \scorrespondências de espaços em branco, como um espaço, uma tabulação, uma nova linha, um retorno de carro, uma tabulação vertical e um byte NUL:

  • ” ” (ASCII 32 (0x20)), um espaço comum.
  • “\t” (ASCII 9 (0x09)), uma guia.
  • “\n” (ASCII 10 (0x0A)), uma nova linha (alimentação de linha).
  • “\r” (ASCII 13 (0x0D)), um retorno de carro.
  • “\v” (ASCII 11 (0x0B)), uma guia vertical.
  • “\0” (ASCII 0 (0x00)), o byte NUL.

O exemplo a seguir usa a classe de caracteres de espaço em branco para corresponder a todos os espaços em uma string:

<?php

$pattern = '/\s/';
$str = 'PHP version 8.0';

echo preg_match_all($pattern, $str, $matches);Linguagem de código:  PHP  ( php )

Ele retorna dois conforme o esperado.

Classes de caracteres inversos

Uma classe de caracteres possui um conjunto inverso com a mesma letra, mas em maiúsculas:

  • \Dé a classe de caracteres inversa da \dclasse de caracteres, que corresponde a qualquer caractere, exceto um dígito.
  • \Sé a classe de caracteres inversa do \sconjunto de caracteres, que corresponde a qualquer caractere, exceto espaço em branco.
  • \Wé a classe de caracteres inversa de \w, que corresponde a qualquer caractere, exceto um caractere de palavra.

O exemplo a seguir usa a \Dclasse de caracteres para corresponder a quaisquer caracteres, exceto dígitos:

<?php

$pattern = '/\D/';
$phone = '(650)-543-2100';

if (preg_match_all($pattern, $phone, $matches)) {
    print_r($matches[0]);
}Linguagem de código:  PHP  ( php )

Saída:

Array
(
    [0] => (
    [1] => )
    [2] => -
    [3] => -
)Linguagem de código:  PHP  ( php )

A classe de caracteres ponto (.)

O ponto ( .) é uma classe de caracteres especial que corresponde a qualquer caractere, exceto uma nova linha.

O exemplo a seguir usa a .classe de caracteres ponto ( ) para corresponder a qualquer caractere, exceto a nova linha.

<?php

$pattern = '/./';
$str = "PHP\n";

if (preg_match_all($pattern, $str, $matches)) {
    print_r($matches[0]);
}Linguagem de código:  PHP  ( php )

Saída:

Array
(
    [0] => P
    [1] => H
    [2] => P
)Linguagem de código:  PHP  ( php )

Resumo

  • Use \da classe de caracteres para corresponder a qualquer dígito.
  • Use \wa classe de caracteres para corresponder a qualquer caractere de palavra.
  • Use \sa classe de caracteres para corresponder a qualquer espaço em branco.
  • A classe de caracteres \D, \W, \Ssão os conjuntos inversos de \d, \we \sclasse de caracteres.
  • Use a classe de caractere ponto ( .) para corresponder a qualquer caractere, exceto uma nova linha.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *