我找到了这个答案 - https://stackoverflow.com/a/7943464/1901367 - 它给了我这个非常有用的代码,允许我解析包含引号和空格的搜索字符串。
preg_match_all('/(?<!")\b\w+\b|(?<=")\b[^"]+/', $subject, $result, PREG_PATTERN_ORDER);
我想知道是否有人可以告诉我如何更改此代码,以使 + 和 - 等布尔运算符保持不变,因为当前代码将它们剥离。
我想使用这些运算符对我的数据库进行全文布尔搜索,但我对这个我不理解的 REGEX 感到困惑。
示例输入和输出。
输入:'"this is some" text here is -more -"exlude me"' 输出:[this is some] [text] [here] [is] [-more] [-exclude me] 这些将在 $结果数组
因此,由空格分隔的所有内容都是单独的项目,除非它是用“”括起来的短语。这已经有效,但是在我有 -more 和 -"exlude me" 的地方,当前的结果将是 [more] 和 [exclude me] 丢失我想要保留的减号。
提前致谢!