3

こんにちは、文字列を一致させたい: "\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)
4

1 に答える 1

6

3 つのバックスラッシュが必要です\\\。この例を確認してください:

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

var_dump($matches);

詳細については、 PHP のマニュアルを参照してください。

質問を更新しましpreg_matchた。SQLREGEXP関数を使用していないようです。ただし、SQL 関数\\\も同様に機能するはずです。

于 2013-08-19T16:57:24.040 に答える