2012-12-18 18 views
0

我想做一个像大多数搜索引擎似乎做的伎俩。我想从字符串中提取匹配的单词并返回它,其中包括2个单词前和它后面的2个单词(如果找到)

比方说,我有这个字符串:

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

我想正则表达式来搜索两个词以上,在这种情况下的话是

我可以使用preg_match_all

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

它工作正常,但我需要返回在每个短语中的匹配单词。 例如字,我想回到它匹配这个格式不错满足,即包裹在周围的话

我想要做同样为

我可以使用explode,preg_match,loop,所以我认为最好是preg_match_all

PS:我有另一个快速的问题,我可以做这个“诡计”,但从我的数据库中获取数据时使用sql query

谢谢。

+0

[全文搜索功能]份额的答案(http://dev.mysql.com/doc/en/fulltext-search做到了。 HTML)。 – eggyal

回答

0

我这个正则表达式

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

所有

相关问题