这是一个示例内容(西班牙语)
Definición<br />
Elementos del fuego<br />
Clases de fuego, ¿Cómo evitar que comiencen las clases de fuego?<br />
Métodos de extinción<br />
Tipos de extintores portátiles<br />
Forma de usar los extintores portátiles<br />
Protección pasiva para el control de incendios, tipos de componentes.<br />
Procedimientos preventivos en caso de incendios en minería<br />
我想使用php <br />
删除最后preg_replace()
次出现。
我试过
preg_replace('/<br \/>$/', '<br class="last" />', $content);
但是没有吃饭。编译器出错了。
我能做些什么?
答案 0 :(得分:5)
使用带有否定前瞻(?!...)
的正则表达式模式,例如
<br \/>(?!.*<br \/>)
答案 1 :(得分:1)
请注意,在使用正则表达式时使用正则表达式:
$text = "foo bar <br /> \nbaz <br /> <br /> mu";
echo preg_replace('/<br \/>(?!.*<br \/>)/', '<br class="last" />', $text) . "\n";
将导致两个<br />
被替换,因为.
(点)元字符与换行符不匹配。所以上面会打印出来:
foo bar <br class="last" />
baz <br /> <br class="last" /> mu
您可能还想考虑“&lt; BR&gt;”或“&lt; br /&gt;” (不止一个空间)。
echo preg_replace('#<br\s*/?>(?!.*<br\s*/?>)#is', '<br class="last" />', $text) . "\n";
(i
使模式不区分大小写,s
允许.
匹配换行符
将打印:
foo bar <br />
baz <br /> <br class="last" /> mu
如果您确定针总是看起来像<br />
,那么一些str-operations也可以做到这一点:
$text = "foo bar <br /> \nbaz <br /> <br /> mu";
$needle = "<br />";
$index = strrpos($text, $needle);
if($index) {
echo substr_replace($text, '<br class="last" />', $index, strlen($needle)) . "\n";
}