php 提取指定多个字符串

字符串
str=‘请问如何用php string函数提取出"1+",谢谢。(初学者,请耐心回答,谢谢)’;

判断是否包含:
如何,函数,初学者,没有,JSP

提取包含的:
如何,函数,初学者

阅读 2.8k
3 个回答

使用正则表达式,preg_match_all(’/(如何)|(函数)|(初学者)|(?:没有)|(?:JSP)/u’,$str,$m)

$m为匹配结果,如果一个都没匹配,为空数组。

你但凡百度一下也不至于这样

if(strpos('www.jb51.net','jb51') !== false){ 
 echo '包含jb51'; 
}else{
 echo '不包含jb51'; 
}

如果需要判断的词语非常多,字符串稍微大点,循环strpos查找性能非常非常低,正则表达式就更不用说了。
正确做法是 把需要包含的词语做词库 , 对需要判断的字符串进行分词。从分词结果就知道包含哪些词语了。这样即使你有百万词语长度为百万的字符串进行查找也能秒出结果.
php分词库 : https://github.com/lizhichao/...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题