负回顾以查看\ n中的前一个字符是否为Y.

时间:2013-10-14 21:45:58

标签: php regex

我正在尝试匹配前面没有Y的每一个新行,并用空字符串替换它,但是这个表达式给了我一个错误。

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

但这是出于某种原因取代所有换行符。我的回顾有什么问题?

1 个答案:

答案 0 :(得分:1)

您可能正在处理的文件具有与预期不同的行结尾。

  • \r - 通常用于基于Mac的系统
  • \n - 通常用于基于Unix的系统
  • \r\n - 通常用于基于Windows的系统

你可以尝试这个来处理任何行结束:

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