编译失败:\ P或\ p之后的未知属性名称

时间:2013-08-19 16:51:48

标签: php regex pdo sqlite preg-match

嗨我想匹配一个字符串: "\par hello \par world"

反对我的正则表达式模式 - > \\par

但是,我得到Compilation failed: unknown property name after \P or \p

我相信我的正则表达式规则被视为unicode字符属性。如何逃避它并按原样运行模式?

我将它包含在PDO函数中。

function sqlite_regExp($sql,$db)
{
    if($db->sqliteCreateFunction("regexp", "preg_match", 2) === FALSE) exit("Failed creating function!");
    if($res = $db->query($sql)->fetchAll()){ return $res; }
    else return false;
}

我正在调用这样的函数

sqlite_regExp("SELECT COUNT(*) FROM table WHERE REGEXP('/\\par/',column) ",$db)

1 个答案:

答案 0 :(得分:6)

你需要3个后照\\\。检查此示例:

$string = "\par hello \par world";
$pattern = '/\\\par/';
preg_match_all($pattern, $string, $matches);

var_dump($matches);

您可以在PHP manual

中找到更多信息

您已更新问题,我发现您没有使用preg_match您正在使用SQL REGEXP函数。但是,SQL函数也应该与\\\一起使用。