我试图降低标记(从HTML生成)并去掉HTML中仅用于格式化的额外换行。我有一个关于正则表达式的工作示例
https://regex101.com/r/dEhyN3/1
但当我把它转换成PHP时,它不起作用,我很难理解为什么。
public function squashEmptyLineBreaks(string $markdown) : string
{
return preg_replace('/\n{2,}/', '\n\n', $markdown);
}
测试:
/** @test */
public function verifySquashEmptyLineBreaks()
{
$original = <<<EOF
**Language**
- Added four languages: Italian, Portuguese (Brazil), Spanish (Mexico) and Chinese (Traditional)
**Bug fixes**
- Fixed camera jittering for passenger sitting on the back of a motorcycle with sidecar
EOF;
$expected = <<<EOF
**Language**
- Added four languages: Italian, Portuguese (Brazil), Spanish (Mexico) and Chinese (Traditional)
**Bug fixes**
- Fixed camera jittering for passenger sitting on the back of a motorcycle with sidecar
EOF;
$this->assertEquals($expected, $this->parsesMarkdown->headersNeverAtEndOfLine($original));
}
此测试继续失败,输出未修改。
我疯了还是忽略了什么?