Automatické testování regulárních výrazů v PHP
Napišme kód, který nám umožní pohodlně testovat napsané regulární výrazy ihned na několika řádcích.
Nechť je náš regulární výraz pro testy uložen v následující proměnné:
<?php
$reg = '#\d{3,}#';
?>
Vytvořme pole řetězců pro kontroly:
<?php
$arr[] = 'aaa 123 bbb';
$arr[] = 'aaa 12345 bbb';
$arr[] = 'aaa 12x bbb';
$arr[] = 'aaa 12 bbb';
?>
Projděme toto pole cyklem a ověřme každý prvek naším regulárním výrazem:
<?php
foreach ($arr as $str) {
echo $str . ' ' . preg_match($reg, $str) . '<br>';
}
?>
Spojme celý kód dohromady a získáme pohodlnou šablonu pro testování regulárních výrazů:
<?php
$reg = '#\d{3,}#'; // váš regulární výraz
$arr[] = 'aaa 123 bbb'; // 1
$arr[] = 'aaa 12345 bbb'; // 1
$arr[] = 'aaa 12x bbb'; // 0
$arr[] = 'aaa 12 bbb'; // 0
foreach ($arr as $str) {
echo $str . ' ' . preg_match($reg, $str) . '<br>';
}
?>
Předpokládejme, že potřebujete ověřit, zda řetězec obsahuje desetinné číslo. Pomocí navrženého skriptu otestujte svůj regulární výraz na různých řetězcích.