PHP preg_replace 符号后的行

PHP preg_replace line after symbol

我之前问的这个问题完全错了,所以再试一次。不要挂我!

从文件中检索文本。

Blah blah blah blah<br />blah blah blah<br />#text to be a color<br />blah blah

我有代码 preg_replace 这个词连接到符号,但我无法让正则表达式从符号到行尾,也就是从 <br /># 到 [= 之前14=]

这是我的符号词代码

$line = preg_replace('/(?<!\w)#([0-9a-zA-Z]+)/m', '<span class='alt'>#</span>', $line);

搜索后,基本上我想要的正则表达式就像 4chan 上的 greentext 东西,但我找不到替换整行的代码示例 IF ONLY 新行以符号。

说明

您想使用 PHP 的 strstr 函数在字符串中查找文本。 从您的 $line 示例中,它将找到您的文本的第一次出现并显示字符串的其余部分。


代码

$line = strstr($line, '<br />#');
$line = preg_replace('/(?<!\w)#([0-9a-zA-Z]+)/m', '<span class='alt'>#</span>', $line);

有几件事。我已经让正则表达式指定 <br /> 作为分隔符,你还必须转义替换字符串中的一些引号...

$line = preg_replace('/<br \/>#([^<]*)/m', '<span class=\'alt\'>#</span>', $line);

有...

Blah blah blah blah<br />blah blah blah<br />#text to be a color<br />#blah blah<br />

你最终得到

Blah blah blah blah<br />blah blah blah<span class='alt'>#text to be a color</span><span class='alt'>#blah blah</span><br />