为什么这里输出的是最后一个单词,而不是第一个单词呢?第一个单词不也是j前面有一个边界吗?

来源:3-33 位置匹配之单词前瞻性匹配和负向前瞻性匹配

慕前端2185815

2020-12-23 19:43:56

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

var nc = 'javadiqph javascript java';
var hum = /(\bjava)+/;
console.log(hum.exec(nc) + '***');


写回答

1回答

好帮手慕夭夭

2020-12-24

同学你好,输出的不是最后一个哦。如下:

http://img.mukewang.com/climg/5fe3f5f009ef4f2703830084.jpg

因为正则中加了分组,所以第一个java是匹配的第一个java,第二个java是分组返回的结果,如下:

http://img.mukewang.com/climg/5fe3f6160903c5dd03330086.jpg

例如把分组去掉,就看出来只匹配了第一个java,如下:

http://img.mukewang.com/climg/5fe3f65809516b7503550072.jpg

结果:

http://img.mukewang.com/climg/5fe3f66a0984600102880080.jpg

祝学习愉快~

0

0 学习 · 14456 问题

查看课程