例如,我有一个sourceString
:
1234\n\n\n\n5678
并且,我想替换 \n
序列中的前2个\n
,该序列必须等于或大于2 个字符
所以,我期望得到的结果
:
1234TEST\n\n5678
我试过了
:
(^|[^\n])\n{2}
,实际结果为:123TEST\n\n5678
我的代码出了什么问题?
基本思想来自@Tim Pietzcker关于我之前问题的教程。
感谢。
Regex to match single new line. Regex to match double new line
答案 0 :(得分:1)
这种基于前瞻性的正面正则表达式应该可行:
var repl = "1234\n\n\n\n5678".replace(/\n{2}(?=\n{2,})/, "TEST");
/\n(?=\n{2,})/
表示匹配\n\n
如果紧跟2个或更多\n
答案 1 :(得分:0)
这里发生的是:
(^|[^\n])\n{2}
^-------^ -- this part
匹配4
并将其替换。您需要将其再次包含在替换中。
var string = "1234\n\n\n\n5678";
string.replace(/(^|[^\n])\n{2}/g, "$1TEST");
^^-- back-reference