2011-08-02 7 views
0

私は、テキストの書式設定を担当する正規表現を作成しようとしています。複数の空白行がある場合は、空白行と空白行がある場合は空白行のみに変換されます。空白行と空白行が一緒になると、最初の変換は機能しません。私のコードは次のようになります。2つの正規表現をPHPで1つに変換しますか?

$string = str_replace(array("\r\n","\r","\n"), "<br />", $string); 
$string = preg_replace("/<br \/>(\s|<br \/>)+<br \/>/", "<br /><br />", $string); 
echo $string; 

2行正規表現を1つにするにはどうすればよいですか?

は、私はこれを試してみましたが、正常に動作していないよう:

$string = preg_replace("/(\r\n|\r|\n)(\s|(\r\n|\r|\n))+(\r\n|\r|\n)/", "<br /><br />", $string); 

おかげ

答えて

0

新しい行があるときだけ空白を交換しない理由:

$string = preg_replace("/\s*\r?\n/", "<br /><br />", $string); 
+0

あなたの正規表現は最後の行の先頭(最後のCRLFの後ろ)に空白を切ります。スタックオーバーフローのようなコード書式がある場合はどうなりますか? – scaryzet

+0

ok、これは簡単に修正できます...固定! –

関連する問題