preg_replace与数组时的分隔符错误

时间:2011-07-28 22:47:15

标签: php regex

我想在html文件中preg_replace一些字符串,但下面的代码给我错误

Warning: preg_replace() [function.preg-replace]: Delimiter must not be
alphanumeric or backslash in /wamp/www/example.php on line 12

第12行是echo preg_replace($matches[0], $results, $sourcestring);

$sourcestring=file_get_contents("example.html");
preg_match_all('/(?<=\/)\d+(?=\-)/',$sourcestring,$matches);
$results = array_unique($matches[0], SORT_NUMERIC);
$results = array_values($results);

for($i=0; $i<count($results); $i++) {
    $results[$i] = 'id="news-id-'.$results[$i].'"';
}

preg_match_all('/class="title"/', $sourcestring, $matches);
echo preg_replace($matches[0], $results, $sourcestring);

1 个答案:

答案 0 :(得分:1)

您的$matches[0]值(类似于)class="title"。您在preg_replace中将其用作正则表达式。 class="title"不是有效的正则表达式,因为它没有有效的分隔符。有效的正则表达式版本为/class="title"/