RegEx:匹配每行中其他字符之间的奇数重复次数

时间:2014-04-16 12:20:27

标签: javascript regex replace

我想知道如何在javascript的每一行中匹配和替换奇数量的斜杠(\)。
它们用于转义字符串,但有时字符串被包装成行,因此斜杠必须移动到下一行。

以下是一个示例:http://regex101.com/r/iI9vO9

我希望匹配通过"是"标记的行。并忽略标有" No"。

的行

例如:

"Yes 1\" + 
"No 2\\" + 
"Yes 3\\\" + 
"No 4\\\\" + 
"No"

应改为:

"Yes 1" + 
"\No 2\\" + 
"Yes 3\\" + 
"\No 4\\\\" + 
"No"

注意每行中斜杠前后都有字符,斜线在重复奇数时间后移动到下一行。
我无法使用(\\)(\\\\)*或环顾四周。

如果这项工作,这就是我的想法:

text.replace(/([^\\])\\" \+ \n"(.)/gm, '$1\\$2"+ \n "')

如果使用RegEx无法做到这一点,我将不胜感激任何其他方法 谢谢你的帮助。

修改
无论谁在Google上查看,这正是解决问题的方法:

text.replace(/([^\\])((\\{2})*)\\" \+ \n"/g, '$1$2" + \n"\\')

http://jsfiddle.net/5mGWF/1/

1 个答案:

答案 0 :(得分:3)

这似乎可以做你想要的:

text = text.replace(/([^\\])((\\{2})*)\\\n/g, "$1$2\n\\")

http://jsfiddle.net/5mGWF/

相关问题