我最近一直在研究正则表达式如何在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);
我已经设法弄清楚它是如何工作的,以及如何插入我的字符串来过滤......但是,无论我把它放在哪里,它都打破了正则表达式。
所以,我的字符串是$ search,我的问题;我是不是把它放在正则表达式中,或者我怎样才能让它不仅找到句子,而且在某处用$ search搜索句子。
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;
}
}
但我得到一个空白页
答案 0 :(得分:0)
$string
与相关的$matches
... 进行比较
例如,像这样:
preg_match_all($pattern, $content, $matches);
foreach ($matches[1] as $match) {
if ($match === $string) {
print "$string found!";
}
}