Php 我想从字符串中提取匹配的单词并返回它,包括前面的两个单词和后面的两个单词(如果找到)
我想做一个像大多数搜索引擎一样的把戏 假设我有这个字符串:Php 我想从字符串中提取匹配的单词并返回它,包括前面的两个单词和后面的两个单词(如果找到),php,mysql,sql,full-text-search,preg-match-all,Php,Mysql,Sql,Full Text Search,Preg Match All,我想做一个像大多数搜索引擎一样的把戏 假设我有这个字符串: $str = "Hello Mr. Ben From the UK, nice to meet you"; 我想要一个正则表达式来搜索两个或两个以上的单词,本例中的单词是to和Ben 我可以使用preg\u match\u all preg_match_all("#[\w+]*(to|Ben)+\w*#isx", $str,$matches); 它工作得很好,但是我需要返回每个短语中匹配的单词。 例如,单词to,我希望将其返回与此格
$str = "Hello Mr. Ben From the UK, nice to meet you";
我想要一个正则表达式来搜索两个或两个以上的单词,本例中的单词是to和Ben
我可以使用preg\u match\u all
preg_match_all("#[\w+]*(to|Ben)+\w*#isx", $str,$matches);
它工作得很好,但是我需要返回每个短语中匹配的单词。
例如,单词to,我希望将其返回与此格式匹配的nicetomeet,即包装在周围的单词中
我也要为Ben做同样的事
我可以使用explode
,preg\u match
,loop
,所以我认为最好使用preg\u match\u all
PS:我还有一个简单的问题,我可以在从数据库中获取数据时使用sql查询执行此“技巧”吗
谢谢。我用这个正则表达式做的
preg_match_all("#(.){0,15}(to|Ben)+(.){0,15}#isx", $str,$matches, PREG_PATTERN_ORDER , 1);
var_dump($matches);
共享所有人的答案。