【发布时间】:2013-04-20 19:08:24
【问题描述】:
众所周知,Google 并不关心我们的搜索查询中的括号。无法更改运算符的顺序。但另一方面,必应更加灵活。
所以我一直在尝试使用 PHP 使我的查询(最初是为 google 制作的)在 Bing 上工作,并且由于两个搜索引擎中 OR 和 AND 之间的优先级不同,我不得不为 Bing 添加括号:
"maison de retraite" france OR francaise OR francais (on Google)
应该是
"maison de retraite" (france OR francaise OR francais) (on Bing)
所以基本上,规则是:
- 打开括号。
- 找到
"?这是一个表达式,所以在找到另一个"之前不要做任何事情 - 找到第二个
"后,查找紧随其后的字符,如果不是OR或|,请关闭括号。
所以我正在考虑一种方法,regExp?这不是我的一杯茶,爆炸整个字符串并在很多条件下循环它?使用一些 strpos, substr.. ?
你觉得什么合适?
【问题讨论】:
-
如果我从左到右阅读,您的示例(对于 Bing)似乎不遵循您的规则,是不是用 OR 或 | 分隔的任何内容(单个单词或多个单词?不是引号中的表达式)需要在括号内。是吗?
-
我一定错过了我的解释,但规则很简单:在空格之后,如果字符不是“OR”或“|”然后插入')'我试图找到一个正则表达式来帮助我做到这一点@sudimail
标签: regex search-engine indentation google-search bing