Javascript Regex - 如何基于正则表达式将字符串拆分为数组

时间:2014-10-05 08:01:18

标签: javascript regex

我有一个字符串:

"<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$"

我想创建一个数组,其中只包含以$开头和结尾的单词。 对于这个例子,我正在寻找的结果是:

["$CREATED_NEW_INCIDENT$","$BASED_ON$", "$EVENTS$"]

我知道我可以用正则表达式来做,但我还没有成功。 而且,当我找到正确的正则表达式时我该怎么办?分开了吗?

4 个答案:

答案 0 :(得分:1)

您不需要拆分它们。只需使用正则表达式匹配

/\$[^$]+\$/g

喜欢这个

var str = "<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$";
var arr = str.match(/\$[^$]+\$/g);

答案 1 :(得分:0)

刚开始与$匹配,直到找到$

var regEx = /\$.*?\$/g;
console.log(data.match(regEx));
# [ '$CREATED_NEW_INCIDENT$', '$BASED_ON$', '$EVENTS$' ]

下面

  • .表示匹配任何字符。

  • .*表示匹配任何字符,为零次或多次

  • .*?表示匹配任何字符,零次或多次,但只能尽可能匹配。

如果我们不在?中使用.*?,则它会从第一个$符号到最后一个$符号匹配。

答案 2 :(得分:0)

您可以使用:

var s = "<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$";
var m = s.match(/(\$[^$]*\$)/g);
//=> ["$CREATED_NEW_INCIDENT$", "$BASED_ON$", "$EVENTS$"]

答案 3 :(得分:0)

您也可以使用:

"<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$".match(/\$[\w]+\$/g)