Simple Regex Language 是一个简单的正则表达式语言——使用 SQL 相似的语言来构建正则表达式,易读性要比我们正常使用正则好太多。
之前发现这个开源库的时候比较感兴趣,中秋前后便抽空实现了一个 JavaScript 的版本:SRL-JavaScript。
使用 ES6 开发,基于 Node 6.0+,可以使用 webpack 和 babel 打包后在浏览器中使用。给个文档中的例子:
const SRL = require('srl')
const query = new SRL('letter exactly 3 times')
const regex = query.get() // /[a-z]{3}/
query.test('aaa') // true
query.exec('aaa') // [ 'aaa', index: 0, input: 'aaa' ]
更多语言规范请参考:Simple Regex
不过由于 JS 正则引擎的缺陷,没法实现捕获分组命名和 lookahead 断言等,如果有好办法请告诉我。