0

我想做一个像大多数搜索引擎似乎做的把戏。

假设我有这个字符串:

$str = "Hello Mr. Ben From the UK, nice to meet you";

我想要一个正则表达式来搜索两个或更多的词,本例中的词是toBen

我可以使用preg_match_all

preg_match_all("#[\w+]*(to|Ben)+\w*#isx", $str,$matches);

它工作正常,但我需要为每个单词返回一个短语中的匹配单词。例如单词to,我想返回匹配这种格式的匹配nice to meet,即包裹在周围的单词中

我想为Ben做同样的事情,

我可以使用explode,来做到这一点preg_matchloop所以我认为最好使用 , 来做到这一点preg_match_all

PS:我还有一个简单的问题,我可以做这个“技巧”但sql query在从我的数据库中获取数据时使用吗?

谢谢你。

4

1 回答 1

0

我通过这个正则表达式做到了

preg_match_all("#(.){0,15}(to|Ben)+(.){0,15}#isx", $str,$matches, PREG_PATTERN_ORDER , 1);
var_dump($matches);

为大家分享答案

于 2012-12-18T09:29:13.660 回答