Golang正则表达式-我做错了什么?

作为一个个人项目,尝试通过将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");

编辑:对于它的价值,我将代码保存在这里。


慕尼黑的夜晚无繁华
浏览 181回答 2
2回答

红颜莎娜

尝试将以下行放在程序的开头:println(runtime.Version())它应该可以打印weekly.2012-03-13或接近该日期。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go