假设我有这样的文本块:
* hello
world
hello again
Run Code Online (Sandbox Code Playgroud)
在 Javascript 中使用 RegEx,如何\在所有平台中替换除第一个之外的所有段落之间的新行?
那么有效的结果就是,
* hello
\
world
\
\
hello again
Run Code Online (Sandbox Code Playgroud)
您可以捕获一个非换行符(通常是点)和一个可选的换行符,然后使用回调来检查是否设置了第一个组。如果是,则返回完整匹配,否则在换行符前添加反斜杠。
const s = `* hello
world
hello again`;
const res = s.replace(/(.\n?)?\n/g, (m0, m1) => m1 ? m0 : '\\\n');
console.log(res);Run Code Online (Sandbox Code Playgroud)
(.\n?)?(?!^)\n(^[ \t]*|\S\n?)?[ \t]*(?!^)\n