0

a が前に付いていないすべての改行を一致さYせ、空の文字列に置き換えようとしていますが、この式でエラーが発生します。

$tsv = preg_replace("/(?<!Y)\n/m", "", $tsv);

しかし、それは何らかの理由ですべての改行を置き換えています。振り返りの何が問題になっていますか?

4

1 に答える 1

1

予想とは異なる行末を持つファイルを扱っている可能性があります。

  • \r- 通常、Mac ベースのシステムで使用されます
  • \n- 通常、Unix ベースのシステムで使用されます
  • \r\n- 通常、Windows ベースのシステムで使用されます

これを試して、任意の行末を処理できます。

$tsv = preg_replace("/(?<!Y)(\r\n?|\n)/m", "", $tsv);
于 2013-10-14T21:58:31.273 に答える