我想替换所有换行符,但前提是它们前面没有使用 JavaScript 的这两个字符 {]
(两者,不是其中之一)。下面的表达式似乎可以完成这项工作,但它破坏了其他正则表达式的结果,所以肯定有问题:
/[^\{\]]\n/g
我做错了什么?
最佳答案
您是否需要能够去除 \n
、\r\n
或两者?
这应该可以完成工作:
/(^|^.|[^{].|.[^\]])\r?\n/gm
并且会要求您将 $1
放在替换字符串的开头。
要回答关于为什么 /[^\{\]]\n/
错误的问题,此正则表达式等同于:“匹配既不是 {
的任何字符也不是 ]
",后跟 \n
,所以这错误地无法匹配以下内容:
here's a square]\n
see the following{\n
您还遗漏了末尾的 g
标志,但您可能已经注意到了这一点。
关于javascript - 匹配字符但不匹配前面有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22634024/