之前写自己的 MVx 框架时就遇到了这个问题, 做 LEX Parsing 的正则表达式非常长, 难以维护, 当时写了一个简陋的连接工具, 但是还是很痛苦. 现在准备写框架的 0.2 版, 也就打算顺便解决正则表达式的维护问题.
https://github.com/vilic/regex-tools
特性:
- 利用现有的 JS 编辑器.
- 支持命名组 (使用
($groupName:...)这样的形式). - 支持自动调整组合后正则表达式捕获组对应的数字.
- 直接更新源文件中添加标签的正则表达式/组别称/函数形参.
说来虽然一个简单的单行字符串字面量匹配可以比较清晰简短 /(["'])(?:\\.|(?:(?!\1).))*\1/, 但是按标准写出来还是挺长的. 于是顺便使用这个工具写了一个字符串面量 (ES5) 的正则生成配置, 作为 demo 供大家参考.
https://github.com/vilic/regex-tools/blob/master/demo/string-literal.rx
