0

我网站的大多数用户都不熟悉如何正确使用高级搜索运算符。以下只是我在数据库中看到的一个示例:

薰衣草+烧伤+

而不是使用 +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 回答