用Javascript Regex替换不包含特定字符串的行的回车符

时间:2015-06-06 13:07:31

标签: javascript regex

我有一些文字行

Procedure Gato
Do task1
    If early Then come back
    turn 2
End Procedure
Schedule Balo
    If late Then go to home
    turn 2
End Schedule'

我需要的结果是

Procedure Gato: Do task1: If early Then come back
    turn 2: End Procedure
Schedule Balo: If late Then go to home
    turn 2: End Schedule'

我使用模式\(?!\n.*(\b(Procedure |Schedule |Then )).*)\n\来替换所有不包含&#34的回车;过程"或"附表"或"然后"之前。然而,它仅适用于"程序"和"时间表"不包括"然后"。 如何获得我需要的确切结果?很高兴收到一些建议。

2 个答案:

答案 0 :(得分:2)

这种模式可以完成这项工作:

(^(?:(?!Then)(?! Procedure)(?! Schedule).)*)(\n\s*)

它基本上捕获了lookAheads上没有单词的行,并用空格替换\n\s*\s*主要用于下一行标签)。我使用剩下的线也捕获了组,因此替换必须是$1:

请参阅Demo

答案 1 :(得分:0)

变化:

|Then

为:

|.*Then

或使用限制性更强的正则表达式替换.*。例如:

/(?!\n.*(\b(Procedure |Schedule |.*?Then )).*)\n/g