在一个\ n序列中的前2 \ n正则表达式

时间:2013-08-02 14:02:01

标签: javascript regex

例如,我有一个sourceString : 1234\n\n\n\n5678

并且,我想替换 \n序列中的前2个\n,该序列必须等于或大于2 个字符

所以,我期望得到的结果 : 1234TEST\n\n5678

我试过了 : (^|[^\n])\n{2}

,实际结果为:123TEST\n\n5678

http://regex101.com/r/cS6uG3

我的代码出了什么问题?

基本思想来自@Tim Pietzcker关于我之前问题的教程。

感谢。

Regex to match single new line. Regex to match double new line

2 个答案:

答案 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