仅删除txt文件中的LF

时间:2012-11-21 09:46:26

标签: php regex text notepad++

我只需要移除LF,而不是CRLF。有什么想法吗?

我可以使用PHP,notepad ++,shell脚本等

enter image description here

4 个答案:

答案 0 :(得分:7)

在记事本++中

试试这个:(?<!\r)\n

确保在搜索选项中设置正则表达式选项,希望有所帮助

答案 1 :(得分:3)

使用负面的背后隐藏。

$str = preg_replace("#(?<!\r)\n#", '', $str);

Fiddle

答案 2 :(得分:1)

LF代表换行符,即ASCII 10或0x0A或“\ n”(在PHP中)。所以就这样做

search_replace( "\n", '', $text)

请注意CRLF实际上是两个字符CR(回车)+ LF。如果你删除LF,你的文本中仍然会有CR(如果有的话)。

修改

如果你只想删除独立的LF但保留CRLF,那么上面的代码是错误的,因为它会将CRLF变成CR。使用preg_replace()执行此操作

preg_replace("/(?<!\\r)\\n+(?!\\r)/", '', $text);

如果出于任何原因你不想使用preg_replace()(但无论如何都要使用它),那么你可以尝试这种愚蠢的方法:

// save CRLFs by replacing with some text that does 
$tmp = str_replace("\r\n", 'S0m3L1k3LyUn1Qu3T3X7', $text);

// get rid of LFs
$tmp = str_replace("\n", '', $tmp );

// restore CRLFs
$text = str_replace('S0m3L1k3LyUn1Qu3T3X7', "\r\n", $tmp);

答案 3 :(得分:1)

在Notepad ++中,您使用搜索/替换,勾选扩展(左下角)并替换

\n
什么都没有。