以下内容中效率最高的preg_match正则表达式是什么:
这些是“foo”的测试用例:
这是我的测试代码:
<?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;
}
?>
答案 0 :(得分:2)
你可以试试这个正则表达式:
/foo(;.+?|\[.+?\].*?)*$/i
如果您的支架不需要关闭:
/foo([;\[].+?)*$/i
如果括号或分号不能是表达式的最后一部分:
/foo([;\[][^;\[]+)*$/i
全部通过Regex planet传递测试。
资源:
答案 1 :(得分:2)
简单:
/foo($|[[;].)/i