我只需要删除LF
,而不是CRLF
。有什么想法吗?
我可以使用 PHP、notepad++、shell 脚本等
在记事本++
试试这个 :(?<!\r)\n
确保在搜索选项中设置正则表达式选项,希望对您有所帮助
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);
在 Notepad++ 中,您使用搜索/替换、勾选扩展(左下角)和替换
\n
凭什么。