有没有办法在@preg_match
上使用错误控制运算符? :)
因为PHP要求模式包含在一个字符之间,所以我想这样做:
使用以下字符查找字符串中此字符的最后一次出现:
$rpos = strrpos($string, $string[0]);
获取修饰符列表:
$mods = substr($rpos, strlen($string));
这个解决方案有多可靠?还有更好的吗?
答案 0 :(得分:2)
我总是在Symfony2 Finder组件中使用this function:
if (preg_match('/^(.{3,}?)([imsxuADU]*)$/', $expr, $m)) {
$start = substr($m[1], 0, 1);
$end = substr($m[1], -1);
if (($start === $end && !preg_match('/[*?[:alnum:] \\\\]/', $start)) || ($start === '{' && $end === '}')) {
// It's a regex!
}
}
答案 1 :(得分:1)
在纪念中,它已经在很短的路程中描述过。
但您可以使用filter_var
方法
$string = "String to match";
if (filter_var($string, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/abc/")))) {
echo "Regex is OK";
} else {
echo "Regex not okay";
}