所以我真的想学习go,但它比我想象的要困难得多。我的目标是编写一个编辑dns文件的程序。第一步是打开文件并将其读入内存。好的,用ioutil.Readfile很容易实现。因此,我需要做的下一件事是只阅读SOA或阅读,直到遇到")"。我到底怎么做?这是文件的样子:
example.com. SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
理想情况下,程序将从包含" SOA"以")"结束并且还认识到";"。我应该从哪里开始呢?
答案 0 :(得分:0)
完全控制的一种方法是使用text/scanner
以下是您的案例示例:
http://play.golang.org/p/_9LddtB7R9
package main
import (
"fmt"
"strings"
)
import "text/scanner"
var dnsRecord = `example.com. SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
`
func main() {
var s scanner.Scanner
s.Init(strings.NewReader(dnsRecord))
tok := s.Scan()
for tok != scanner.EOF {
// do something with tok
tok = s.Scan()
fmt.Println(s.TokenText())
}
}
否则,您可以使用正则表达式匹配特定行http://golang.org/pkg/regexp/