javascript - 匹配字符但不匹配前面有

标签 javascript regex regex-negation

我想替换所有换行符,但前提是它们前面没有使用 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/

相关文章:

javascript - 复选框限制功能发生后复选框变得不可点击reactjs

javascript - 为什么这一行需要bind(this)?

javascript - 具有多个参数的数据库搜索

javascript - 按换行符拆分字符串,保留带引号的段

javascript - 正则表达式 - 用换行符替换第三个点和空格

JavaScript 正则表达式提取字符串的不同部分

具有非常具体规则的用户名的正则表达式

javascript - WebSocket:如何在它死后自动重新连接

javascript - 使用匹配多个字符的正则表达式拆分字符串

JavaScript 正则表达式以避免文本框中的某些模式