我有一些文字行
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的回车;过程"或"附表"或"然后"之前。然而,它仅适用于"程序"和"时间表"不包括"然后"。
如何获得我需要的确切结果?很高兴收到一些建议。
答案 0 :(得分:2)
这种模式可以完成这项工作:
(^(?:(?!Then)(?! Procedure)(?! Schedule).)*)(\n\s*)
它基本上捕获了lookAheads上没有单词的行,并用空格替换\n\s*
(\s*
主要用于下一行标签)。我使用剩下的线也捕获了组,因此替换必须是$1:
请参阅Demo
答案 1 :(得分:0)
变化:
|Then
为:
|.*Then
或使用限制性更强的正则表达式替换.*
。例如:
/(?!\n.*(\b(Procedure |Schedule |.*?Then )).*)\n/g