javascript - JS+正则表达式 : Match anything except if it's between [[ ]]

标签 javascript regex

我有一个<textarea>这基本上是一个名称列表,因此我设置了一个函数来替换新行的名称之间的空格。

现在我需要指定名称之间的两个或多个空格实际上是同一元素的一部分。
IE:

John Lucas [[Laurie Vega]] [[Daniel Deer]] Robert

应该转向

John
Lucas
[[Laurie Vega]]
[[Daniel Deer]]
Robert

现在我的正则表达式 $("textarea").val().toString().replace(\ \g, '\n');已损坏,因为它将在 Vega 和 Deer 之前添加新行。

我需要替换 [ 之间以外的任何内容和] 。我只是做了相反的事情并试图否定它,但它似乎不起作用:

// Works
$("textarea").val().toString().match(/\[([^\]]*)\]/g));
// Am I using the ! operand wrong?
$("textarea").val().toString().match(/!\[([^\]]*)\]/g));

我有点失落。我尝试匹配然后替换,但这样我将无法恢复原始字符串。所以我必须匹配双括号之外的任何内容并替换空格。

最佳答案

如果您的名字有可能包含非字母字符(“Jim-bo O'Leary”?),您可能更喜欢使用/[^[ ]/来匹配除“[”或空格之外的任何内容。

然后您可以连接匹配的字符串以获得换行效果。

$("textarea").val().toString().match(/([^\[ ]+|\[\[[^\]]*\]\])/g).join("\n");

关于javascript - JS+正则表达式 : Match anything except if it's between [[ ]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036068/

相关文章:

regex - 在 Greasemonkey @include 中使用正则表达式?

java拆分函数

javascript - 带有显示 XML 数据的 HTML 的空白页面

javascript - 使用JS从文本文件中读取变量

Javascript将图片字节转换为十六进制

Javascript无法调用未定义的方法 'indexOf'

java - 如何从 Java 中的给定字符串中提取日期

php - Preg 匹配撇号

php - 在空格上拆分字符串,引号中的单词除外

javascript - JSON 对象中的二分搜索