Resumo : neste tutorial, você aprenderá sobre a alternância de regex, que é simplesmente um operador “OR” na expressão regular.
Introdução à alternância regex
Expressões regulares usam a barra vertical ( |
) para denotar uma alternância. A alternância é simples no OR
operador nas expressões regulares.
Por exemplo, o padrão a seguir usa a alternância ( |
) para corresponder apple
a ou orange
:
'/apple|orange/'
Linguagem de código: PHP ( php )
Aqui está o código:
<?php
$str = "apple, orange, banana";
$pattern = '/apple|orange/';
if (preg_match_all($pattern, $str, $matches)) {
print_r($matches[0]);
}
Linguagem de código: PHP ( php )
Saída:
Array
(
[0] => apple
[1] => orange
)
Linguagem de código: PHP ( php )
Use a alternância regex para combinar a hora no formato hh:mm
Para corresponder a um horário em hh:mm
, você pode usar a seguinte expressão regular:
'/\d{2}:\d{2}/'
Linguagem de código: PHP ( php )
No entanto, o \d{2}
padrão também corresponde a 99
, que não é uma hora ou minuto válido.
Para corrigir isso, você pode usar a alternância regex. A hora válida varia de 01
a 23
. Portanto, o padrão para combinar a hora é o seguinte:
[01]\d|2[0-3]
Linguagem de código: PHP ( php )
O minuto varia de 00
a 59
. Portanto, o padrão do minuto é:
[0-5]\d
Linguagem de código: PHP ( php )
Aqui está a expressão regular que corresponde à hora no hh:mm
formato:
'/[01]\d|2[0-3]:[0-5]\d/'
Linguagem de código: PHP ( php )
Além disso, você pode adicionar grupos de captura para horas e minutos:
'/([01]\d|2[0-3]):([0-5]\d)/'
Linguagem de código: PHP ( php )
O exemplo a seguir ilustra como usar a alternância regex para corresponder à hora:
<?php
$times = ['10:20', '24:10', '01:20', '22:99'];
$pattern = '/([01]\d|2[0-3]):([0-5]\d)/';
foreach ($times as $time) {
if (preg_match($pattern, $time, $matches)) {
echo $matches[0] . PHP_EOL;
}
}
Linguagem de código: PHP ( php )
Saída:
10:20
01:20
Linguagem de código: PHP ( php )
Resumo
- A alternância regex é um operador OR em expressões regulares.