Automaattinen säännöllisten lausekkeiden testaus PHP:ssä
Kirjoitetaan koodi, jonka avulla voimme testata kätevästi kirjoittamiamme säännöllisiä lausekkeita useilla merkkijonoilla heti.
Olkoon testattava säännöllinen lausekkeemme tallennettuna seuraavaan muuttujaan:
<?php
$reg = '#\d{3,}#';
?>
Tehdään taulukko tarkistettavista merkkijonoista:
<?php
$arr[] = 'aaa 123 bbb';
$arr[] = 'aaa 12345 bbb';
$arr[] = 'aaa 12x bbb';
$arr[] = 'aaa 12 bbb';
?>
Käydään tämä taulukko läpi silmukalla, tarkistaen jokainen alkio säännöllisellä lausekkeellamme:
<?php
foreach ($arr as $str) {
echo $str . ' ' . preg_match($reg, $str) . '<br>';
}
?>
Kootaan kaikki koodi yhteen ja saadaan kätevä luonnos säännöllisten lausekkeiden testaamiseen:
<?php
$reg = '#\d{3,}#'; // sinun säännöllinen lausekkeesi
$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>';
}
?>
Oletetaan, että sinun täytyy tarkistaa, onko merkkijonossa desimaaliluku. Käyttäen ehdotettua komentosarjaa, testaa säännöllistä lausekettasi eri merkkijonoilla.