douxue4395 2012-10-01 23:14
浏览 16
已采纳

从[]个字节中删除C样式的注释

all. I'm trying to write a wrapper for a particular type of config file, which is JSON encoded. Unfortunately, this file contains C-style comments, (// and /* */,) and these cause errors in json.Unmarshal. Is there a way force Unmarshal to ignore these comments, or otherwise remove them easily?

I'm looking into regexp now, but I'm hoping there's an elegant solution that I, as a beginner in Go, might not be able to come up with in the course of a few minutes.

  • 写回答

2条回答 默认 最新

  • dongren4147 2012-10-02 00:18
    关注

    You'll have to strip out the comments, as the JSON specification does not allow comments. A regular expression can do the job.

    package main
    
    import (
        "fmt"
        "regexp"
    )
    
    var bytes = []byte(`// this is a line comment
    this is outside the comments
    /* this
       is
       a
       multi-line
       comment */`)
    
    func main() {
        re := regexp.MustCompile("(?s)//.*?
    |/\\*.*?\\*/")
        newBytes := re.ReplaceAll(bytes, nil)
        fmt.Println(string(newBytes))
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退