目标是将字符串拆分为行,除非前面有反斜杠。让我们想象一下。像这样的字符串:
Hello\
world!
Bye, world.
应该分开:
[0] Hello world!
[1] Bye, world!
我想出了这个正则表达式(对于 PHP,preg_split
):
/(?<!\\\\)\n/
它拆分并在拆分时考虑反斜杠,但是:
- 反斜杠和换行符仍然存在。
- 它仅适用于类 UNIX 换行符 (
\n
)。
所以,它实际上输出:
[0] Hello\\x10 world!
[1] Bye, world!
我的正则表达式应该如何?
到目前为止,为了解决这些问题,我已经尝试过:
/(?<!\\\\)(?:\r\n|\n|\r)/
/(?:(?<!\\\\)\n)/
但他们都没有工作。