我网站的大多数用户都不熟悉如何正确使用高级搜索运算符。以下只是我在数据库中看到的一个例子:
薰衣草+烧伤+
而不是使用+薰衣草+烧伤
我正在尝试触发错误消息,以便他们可以正确学习如何进行高级搜索。当我们尝试在单个单词而不是短语周围使用引号时,我出现了错误。现在我正试图想出一个错误,当他们没有正确使用+时显示。我的代码可以检测是否有加号,但我只需要一些帮助来判断+是出现在单词前面还是之后。
答案 0 :(得分:0)
这些方面应该做的事情:
if (preg_match('/\w\+/', $string)) {
// a plus was found following a word
}
答案 1 :(得分:0)
查看上面的示例,您将感兴趣的是正则表达式运算符^
和$
。它们匹配行的开头和结尾。例如,^+[a-zA-z]*
符合您的要求,[a-zA-Z]*+$
将与您的用户输入相匹配。
答案 2 :(得分: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
}
}