先说下场景,我想用正则匹配markdwon文件中的所有图片链接并返回
测试文件内容
# 测试




匹配的正则表达式
/(?<=![.*]()(.+)(?=))/g
分别测试exec,matchAll,match
exec测试
为啥先测试这个,因为最开始我用的就是这个,最后返回结果跟我使用在线工具匹配的结果不一致,
测试代码
let content = fs.readFileSync('../test.md').toString();
let pattern = /(?<=![.*]()(.+)(?=))/g;
console.log('exec', pattern.exec(content));
结果
明显不对
matchAll测试
let content = fs.readFileSync('../test.md').toString();
let pattern = /(?<=![.*]()(.+)(?=))/g;
//console.log('exec', pattern.exec(content));
console.log('matchAll', ...content.matchAll(pattern));
更不对了
match测试
let content = fs.readFileSync('../test.md').toString();
let pattern = /(?<=![.*]()(.+)(?=))/g;
//console.log('exec', pattern.exec(content));
//console.log('matchAll', ...content.matchAll(pattern));
console.log('match', content.match(pattern));
这次对了