正则表达式 – 将内联链接转换为引用
发布时间:2020-12-14 06:31:34 所属栏目:百科 来源:网络整理
导读:我有一个使用 Github’s markdown格式化的changelog文件. 最初我为需要添加的每个链接使用内联链接,即: This is some [example](http://www.stackoverflow.com) line of text. 随着时间的推移,随着文件大小的增加,它变得有点乱,主要是因为这种插入链接的方
我有一个使用
Github’s markdown格式化的changelog文件.
最初我为需要添加的每个链接使用内联链接,即: This is some [example](http://www.stackoverflow.com) line of text. 随着时间的推移,随着文件大小的增加,它变得有点乱,主要是因为这种插入链接的方式. 我想将所有链接从内联转换为引用(参见description of each),即将上面的行转换为: This is some [example][1] line of text. [1]: http://www.stackoverflow.com 由于文件相当大并且包含许多内联链接,我想知道是否有一些自动化的方法来执行此操作.我使用Sublime Text 3进行编辑,但是我找不到适合此任务的包.也许一些聪明的正则表达式?
这是一个很好的要求!
我刚刚在GitHub上创建了一个新的Node.js程序(我知道它不是一个GUI,但似乎有更多人想要的功能). 这里也是代码: // node main.js test.md result.md var fs = require('fs') fs.readFile(process.argv[2],'utf8',function (err,markdown) { if (err) { return console.log(err); } var counter = 1; var matches = {}; var matcher = /[.*?]((.*?))/g; while (match = matcher.exec(markdown)) { if (!matches[match[1]]) matches[match[1]] = counter++; } console.log(matches); Object.keys(matches).forEach(function(url) { var r = new RegExp("([.*?])(" + url + ")","g"); markdown = markdown.replace(r,"$1[" + matches[url] + "]"); markdown += "n[" + matches[url] + "]: " + url; }); fs.writeFile(process.argv[3],markdown,function (err) { if (err) return console.log(err); }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |