是否可以使用<br>
代码替换换行符,但忽略</h1>
代码后面的换行符?
例如,我想更改此块:
<h1>Test</h1> \n some test here \n and here
对此:
<h1>Test</h1> some test here <br /> and here
答案 0 :(得分:1)
$subject = "<h1>hithere</h1>\nbut this other\nnewline should be replaced.";
$new = preg_replace("/(?<!h1\>)\n/","<br/>",$subject);
echo $new;
// results in:
// <h1>hithere</h1>
// but this other<br/>newline should be replaced.
应该有效。这表示\ n不会立即出现在h1&gt;
之前答案 1 :(得分:1)
使用字符串函数而不是正则表达式,并假设</h1>
标记可以在行上的任何位置(而不是在换行符之前):
$lines=file($fn);
foreach ($lines as $line) {
if (stristr("$line", "</h1>") == FALSE) {
$line = str_replace("\n", "<br />", $line);
}
echo $line;
}
,对于您的示例,结果为:
<h1>
{测试{1}}
这里有一些测试</h1>
和<br />