如何使用lookbehind和lookahead零长度断言提取括号内的字符串?

时间:2018-03-03 04:11:30

标签: javascript regex lookahead lookbehind

我想从0

中提取inner_string"string[0][inner_string]"

我的方法使用lookbehind和looahead零长度断言。

这是正则表达式:

              +--- Look ahead
              |
              v
/(?<=\[)(.*?)(?=\])/g
  ^
  |
  +--- Look behind

&#13;
&#13;
var str = "string[0][inner_string]";
console.log(str.match(/(?<=\[)(.*?)(?=\])/g));
&#13;
&#13;
&#13;

但是,我收到了错误。

是否可以使用环视?

1 个答案:

答案 0 :(得分:1)

引用 @ctwheels :“Lookbehinds在JavaScript(see the current stage of the TC39 proposal)中几乎没有支持。在撰写本文时,只有Chrome(从版本62开始)和Moddable(在1月17日之后) ,2018)支持JavaScript中的lookbehinds。“

正则表达式\[([^\]]+)\]

str = 'string[0][inner_string]'
re = /\[([^\]]+)\]/g

while(match = re.exec(str)) {
  console.log(match[1])
}