Conjuntos e intervalos Regex

Resumo : neste tutorial, você aprenderá sobre os conjuntos e intervalos de regex para criar expressões regulares que correspondam a um conjunto de caracteres.

Conjuntos

Um conjunto é um ou mais caracteres especificados entre colchetes. Por exemplo:

[abc]Linguagem de código:  PHP  ( php )

Como um conjunto corresponde a qualquer caractere entre colchetes, o [abc]conjunto corresponde ao caractere ae b.c

O exemplo a seguir usa um conjunto para corresponder à string Jillou Hill:

<?php

$pattern = '/[JH]ill/';
$title = 'Jack and Jill Went Up the Hill';

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

Saída:

Array
(
    [0] => Jill
    [1] => Hill
)Linguagem de código:  PHP  ( php )

Neste exemplo, o conjunto [JH]corresponde ao caractere Jou H. Portanto, a expressão regular /[JH]ill/corresponde Jilla e Hill.

Gamas

Suponha que você queira combinar muitos caracteres em um conjunto, por exemplo, de apara z. Se você listar todos esses caracteres entre colchetes, não seria o ideal.

Os intervalos permitem especificar um intervalo de caracteres. Por exemplo, os [a-z]intervalos de aaté z.

Além disso, você pode especificar vários intervalos entre colchetes. Por exemplo, o [a-z0-9]intervalo corresponde a caracteres de aaté ze números de 0até 9.

Da mesma forma, the [a-zA-Z0-9_]é igual à \w classe de caractere e o [0-9]intervalo é igual a \d.

Negar conjuntos e intervalos

Para negar um conjunto ou intervalo, você usa o caractere circunflexo ( ^) no início do conjunto e intervalo. Por exemplo, o intervalo [^0-9]corresponde a qualquer caractere, exceto um dígito. É o mesmo que \D.

Observe que o sinal de intercalação ( ^) também é uma âncora que corresponde ao início de uma string. Se você usar o sinal de intercalação ( ^) entre colchetes, ele se comportará como um operador de negação, não como uma âncora.

O exemplo a seguir usa o sinal de intercalação (^) para negar o conjunto [aeoiu] para corresponder às consoantes na string 'Hello':

<?php

$pattern = '/[^aeoiu]/';
$title = 'Hello';

if (preg_match_all($pattern, $title, $matches)) {
    print_r($matches[0]);
}Linguagem de código:  HTML, XML  ( xml )

Saída:

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

Resumo

  • Um conjunto corresponde a qualquer caractere especificado entre colchetes.
  • Um intervalo corresponde a qualquer caractere em um intervalo de caracteres.
  • Para negar um conjunto ou intervalo, você usa o caractere circunflexo [^...].

Deixe um comentário

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