2012-01-22 26 views
2

に引用符を除外するために、どのようにこれは、例えば文字列であるは、英数字の文字列

/([a-z_]+[a-z0-9_]+)/i

が結果は次のとおりです。

`User`.`status` <> 'actived'

しかし、次の正規表現で

`User`.`status` <> '`actived`'

コンテキストコードの使用:

protected function escapeExpression($expression) 
{ 
    //$expression = "User.status <> 'actived'"; 
    //escapeKeyword returns '`' . $param . '`' 
    return preg_replace('/([a-z_]+[a-z0-9_]+)/i', $this->escapeKeyword('$1'), $expression); 
} 
+1

SQLコードをエスケープしようとしているようです。あなたはこれが必要なものについてより多くの文脈を提供できますか? –

+0

これは私が開発している図書館の一部です。 QueryBuilderに固有です。 –

+0

@CristianGonzales明確化(または特にコード)を追加する必要がある場合は、質問の編集にコメントよりも適しています。質問の末尾にあるバッジの左側にある編集リンクをクリックするだけです。 –

答えて

1

/(?<!['a-z0-9_])([a-z_]+[a-z0-9_]+)(?!['a-z0-9_])/iが否定後読み及び負の先読みを使用して、トリックを行うだろう。

+0

その正規表現では、結果は次のようになります:\ 'User \' status \ '<> '\ ctive \' d' –

+0

別のtryで編集します。 –

+0

それは動作します!ありがとう。 –

関連する問題