的Javascript正则表达式 - 如何基于正则表达式
问题描述:
字符串分割到一个数组我有一个字符串:的Javascript正则表达式 - 如何基于正则表达式
"<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$"
我想创建一个数组,其中包括仅在$开始和结束的话。 对于这个例子的结果,我寻找的是:
["$CREATED_NEW_INCIDENT$","$BASED_ON$", "$EVENTS$"]
我知道,我可以用正则表达式做,但我还没有成功。 此外,当我找到正确的正则表达式时,我该怎么做?拆分它?
答
你不需要拆分它们。只要符合使用正则表达式
/\$[^$]+\$/g
像这样
var str = "<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$";
var arr = str.match(/\$[^$]+\$/g);
答
只是$
开始配对,直到你找到一个$
。
var regEx = /\$.*?\$/g;
console.log(data.match(regEx));
# [ '$CREATED_NEW_INCIDENT$', '$BASED_ON$', '$EVENTS$' ]
这里
.
意味着匹配任何字符。.*
意味着匹配任何字符,零次或多次.*?
装置匹配任何字符,零次或多次,但仅匹配尽可能最小。
如果我们不.*?
使用?
,它将匹配从第一$
符号到最后$
符号。
答
您可以使用:
var s = "<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$";
var m = s.match(/(\$[^$]*\$)/g);
//=> ["$CREATED_NEW_INCIDENT$", "$BASED_ON$", "$EVENTS$"]
答
您还可以使用:
"<b>Dispatcher Number1 $CREATED_NEW_INCIDENT$ </b> $BASED_ON$ 1 $EVENTS$".match(/\$[\w]+\$/g)