Что наиболее эффективно preg_match регулярное выражение для следующего:
- Регулярное выражение должно соответствовать определенной строке (регистр нечувствителен )
- Может сопровождаться [или; , а затем что-то еще
Вот тестовые примеры для "foo":
- foo -> хорошо
- еда -> плохая
- Foo; -> плохо, нужно что-то после;
- FOO; бар -> хорошо
- foo [bar] -> хорошо
- foo [-> плохо, нужно что-то после]
- fOo [bar] 1; 2; 3 -> хорошо
Это мой тестовый код:
<?php
$tests = array();
$tests[] = 'foo';
$tests[] = 'food';
$tests[] = 'foo;';
$tests[] = 'FOO;bar';
$tests[] = 'foo[bar]';
$tests[] = 'foo[';
$tests[] = 'foo[]';
$tests[] = 'fOo[bar]1;2;3';
foreach ($tests as $test)
{
echo $test, ' --> ';
$found = preg_match('REGULAR EXPRESSION HERE', $test);
if ($found === false || $found < 1)
echo 'bad';
else
echo 'ok';
echo '<br>', PHP_EOL;
}
?>