我目前正在处理一个正则表达式。我处理的一些字符串的末尾有换行符,有些则没有。但是我希望这些换行符在我添加的html之外。起初,我的正则表达式中没有换行代码,但后来换行代码在结束标记之前返回。我用当前的代码修复了这个问题,但现在它不再正确处理末尾没有换行符的字符串。
因此,我试图对我的代码进行更改,在有换行符时返回换行符,但在没有换行符时也处理字符串。
我当前的代码:
preg_replace('/^(m:|maken:)(.*)([rn])/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);
^^^^^^^^ ^^
我认为解决方案应该在下划线部分,但我还没有找到我想要的结果。
您可以通过使用?
使模式成为可选的(即,允许0或1个实例(,因此这应该为您服务:
'/^(m:|maken:)(.*)([rn])?/i'
但我认为去掉所有输入的换行符会更容易,因为它们无论如何都不会在输出中呈现。
[rn]
与r
或n
匹配。为了匹配任何类型的换行符,请使用R
和?
使其可选:
preg_replace('/^(m:|maken:)(.*)(R?)/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);