【发布时间】:2014-04-16 21:19:32
【问题描述】:
我想知道如何在 javascript 的每一行中匹配和替换奇数数量的斜杠 (\)。
它们用于对字符串进行转义,但有时字符串会被换行,因此斜杠必须移动到下一行。
这里是一个例子:http://regex101.com/r/iI9vO9
我想匹配标有“是”的行,忽略标有“否”的行。
例如:
"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"\\')
【问题讨论】:
-
我只是做了一个简单的。看看:regex101.com/r/fH9iS5
-
开箱即用的好想法 sshashank
-
@Martin,谢谢。您能否对此做出完整的回答?谢谢。
-
很好,但请注意它需要匹配奇数斜线。您提供的正则表达式都没有解决这个问题!也请使用 JavaScript 作为 RegEx 引擎。谢谢!
标签: javascript regex replace