PHP正则表达式将新行限制为最大值为2

Sup*_*vah 1 php regex unix windows newline

我正在使用它,但它正在取代新线的单次出现 <br/><br/>

function nl2br2($string){
    $string = preg_replace('/(\r\n){2,}/', '<br/><br/>', $string);
    //$string = preg_replace('/[\r\n]/', '<br/>', $string);
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

它发生在第一个模式.

Naw*_*Man 5

好吧,我怀疑你的输入可能不是'/ r/n'而只是'\n'.在这种情况下,你应该使你的正则表达式检测到这样:'/(\ r?\n){2,} /'.

所以你的代码可能是:

function nl2br2($string){
    $string = preg_replace('/(\r?\n){2,}/', '<br/><br/>', $string);
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.