用可选换行替换Preg_replace



我目前正在处理一个正则表达式。我处理的一些字符串的末尾有换行符,有些则没有。但是我希望这些换行符在我添加的html之外。起初,我的正则表达式中没有换行代码,但后来换行代码在结束标记之前返回。我用当前的代码修复了这个问题,但现在它不再正确处理末尾没有换行符的字符串。

因此,我试图对我的代码进行更改,在有换行符时返回换行符,但在没有换行符时也处理字符串。

我当前的代码:

preg_replace('/^(m:|maken:)(.*)([rn])/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);
^^^^^^^^                                                    ^^

我认为解决方案应该在下划线部分,但我还没有找到我想要的结果。

您可以通过使用?使模式成为可选的(即,允许0或1个实例(,因此这应该为您服务:

'/^(m:|maken:)(.*)([rn])?/i'

但我认为去掉所有输入的换行符会更容易,因为它们无论如何都不会在输出中呈现。

[rn]rn匹配。为了匹配任何类型的换行符,请使用R?使其可选:

preg_replace('/^(m:|maken:)(.*)(R?)/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);

最新更新