我一直在寻找正则表达式如何在PHP中工作,并且我有这个想法试图从维基百科中提取句子,如果它们包含搜索词。 到目前为止,我管理这个只提取句子:PHP正则表达式 - 提取包含字符串的句子
$content = $wdata->query->pages->$wpageid->extract;
preg_match_all('/(?<=[.?!]|^).*?(?=([.?!])\s{0,3}[A-Z]|$)/s',$content,$matches);
echo "<pre>";
for($i=0;$i<count($matches[0]);$i++)
$result[] = trim($matches[0][$i]).$matches[1][$i];
print_r($result);
我设法弄清楚如何工作的,以及如何插入我的字符串过滤......但是,在以往任何时候我把它,它打破了正则表达式。
所以,我的字符串是$搜索,和我的问题;是我把它放在正则表达式中,或者我怎样才能让它不仅能找到句子,而且还能在其中的某处搜索$。
preg_match_all('/(?<=[.?!]|^).*?(?=([.?!])\s{0,3}[A-Z]|$)/s',$content,$matches);
('.$search.')
编辑:
好了,所以我试图用:
$content = $wdata->query->pages->$wpageid->extract;
preg_match_all('/(?<=[.?!]|^).*?(?=([.?!])\s{0,3}[A-Z]|$)/s', $content, $matches);
foreach ($matches[1] as $match) {
if (strpos($match, $search)) {
print $match;
}
}
但我得到一个空白页
也许找到所有的句子,然后排除这些无字搜索。 – Robert
请问我能否看到一些例子,正如我所说,我很新,缺乏对内部工作原理的了解 – Connor
要排除那些没有搜索到的字词,我会使用一个foreach($ result){//包含$ search//不}}或沿着这些行 – Connor