0

私の Web サイトのユーザーのほとんどは、高度な検索演算子を正しく使用する方法に慣れていません。以下は、データベースに表示される内容の一例です。

ラベンダー + バーンズ +

+lavender +burns を使用する代わりに

高度な検索を行う方法を正しく学習できるように、エラー メッセージをトリガーしようとしています。フレーズの代わりに単一の単語を引用符で囲もうとすると、エラーが表示されます。今、私は彼らが + を正しく使用していないときに表示されるエラーを考え出そうとしています. 私のコードはプラス記号があるかどうかを検出できますが、+ が単語の直前または直後に表示されるかどうかを判断する方法についての助けが必要です。

4

3 に答える 3

0

これらの行に沿って何かを行う必要があります:

if (preg_match('/\w\+/', $string)) {
    // a plus was found following a word
}
于 2012-10-02T03:25:53.483 に答える
0

上記の例を見ると、正規表現演算子^$が興味深いでしょう。行の先頭と末尾に一致します。たとえば、^+[a-zA-z]*あなたが望むもの[a-zA-Z]*+$と一致し、ユーザーの入力と一致します。

詳細はこちら: http://www.regular-expressions.info/anchors.html

于 2012-10-02T03:27:05.860 に答える
0

おそらくこれを行う適切な正規表現を書くことができますが、このような簡単なことを試してみたいと思うかもしれません。

$queryArray = explode(' ', $rawQuery);
if (count($queryArray)) {
    if ('+' === $queryArray[0][0]) {
        // + is in front of first word in query
    }

    $lastWordInQuery = $queryArray[count($queryArray) - 1];
    if ('+' === $lastWordInQuery[strlen($lastWordInQuery) - 1]) {
        // + is at the end of last word in query
    }
}
于 2012-10-02T03:28:31.873 に答える