javascript正则表达式问题

为什么'aab'.replace(/^a(?<=a)b{0,3}/g, 'c')
这个正则替换的结果是"cab"啊?
我的理解是:
^匹配字符串的开始位置,与其后的a共同匹配'位于开始位置的a';
后面的(?<=a)b{0,3}匹配前面是a的b,那么结果应该匹配'aab'中开始的'a'和最后一个'b'才对,为何只会匹配最开始的a呢?求解惑。

阅读 2k
1 个回答

js不支持positive lookbehind,觉得这样的结果是因为正则表达式对象无视了不认识的(?<=)以及之后的所有表达式,所以只匹配了一个a

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题