我目前正在努力解决正则表达式。我处理的一些字符串末尾有换行符,有些则没有。但我希望这些换行符位于我添加的 html 之外。起初,我的正则表达式中没有换行符代码,但后来换行符在结束标记之前返回。我用当前代码修复了这个问题,但现在它不再正确处理末尾没有换行符的字符串。因此,我尝试更改我的代码,以在存在换行符时返回换行符,但在没有换行符时也处理字符串。我当前的代码:preg_replace('/^(m:|maken:)(.*)([\r\n])/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);
^^^^^^^^ ^^我认为解决方案应该在下划线部分,但我还无法用我正在寻找的结果来修复它。
2 回答

潇湘沐
TA贡献1816条经验 获得超6个赞
您可以通过在模式后面加上 a 将模式设为可选(即允许有 0 或 1 个实例)?
,因此这应该可以为您完成:
'/^(m:|maken:)(.*)([\r\n])?/i'
但我认为删除所有传入的换行符会更容易,无论如何它们都不会在输出中呈现。

慕勒3428872
TA贡献1848条经验 获得超6个赞
[\r\n]
匹配\r
或\n
. 为了匹配任何类型的换行符,请使用\R
和?
使其可选:
preg_replace('/^(m:|maken:)(.*)(\R?)/i', $makenblokje . '<em class="markeerroze">$2</em>$3', $regel, 1, $teller);
- 2 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消