作为一个个人项目,尝试通过将Go(lang)应用到某些东西来学习它,我正在编写一个EMCAScript / JavaScript“编译器”;(最初)要做的就是允许您包含其他.js文件。
除了功能之外,我还在努力寻找解决regexp方案。这是似乎没有按照我想要的方式执行的代码段:
// Note: "lines" is an array of strings.
var includeRegex, _ = regexp.Compile("^[ \t]*include[(]{1}\"([^\"]+)\"[)]{1};")
for _, line := range lines {
var isInclude = includeRegex.Match([]byte(line))
if isInclude {
var includeFile = includeRegex.FindString(line)
fmt.Println("INCLUDE", includeFile)
} else {
// ...
}
我已经偶然发现Go的正则表达式子集,因此为什么regex不读为^\s*include\("([^"]+)"\);。我已经在RegexPal中测试了首选和Go风格的正则表达式,两者都可以正常工作。这场比赛似乎从未发生过。我究竟做错了什么?
对于它的价值,include()我要解析的语句看起来像这样:
include("somefile.js");
编辑:对于它的价值,我将代码保存在这里。
红颜莎娜
相关分类