golang正则表达式小札

准备工作 golang正则需要引入包中的regexp包。 import ( "regexp" ) 如果需要复用正则表达式对象来提高性能,可以通过Compile() 或者 MustCompile()创建一个编译好的正则表达式对象。 支持的表达式 单个匹配: . any character, possibly including newline (flag s=true) [xyz] character class [^xyz] negated character class \d Perl character class \D negated Perl character class [[:alpha:]] ASCII character class [[:^alpha:]] negated ASCII character class \pN Unicode character class (one-letter name) \p{Greek} Unicode character class \PN negated Unicode character class (one-letter name) \P{Greek} negated Unicode character class 组合匹配: xy x followed by y x|y x or y (prefer x) 多次匹配:...

golang不创建临时文件上传网络文件

func UploadFromUrl(uploadUrl string, resUrl string,postFileName string, submitField string) error { method := "POST" payload := &bytes.Buffer{} writer := multipart.NewWriter(payload) if res, err := http.Get(resUrl); err != nil { return err } else { defer func() { if res != nil { _ = res.Body.Close() } }() part, _ := writer.CreateFormFile(submitField, postFileName) if _, copyErr := io.Copy(part, res.Body); copyErr != nil { return copyErr } if err := writer.Close(); err != nil { return err } } client := &http....

golang检测网络连接是否关闭

_, err := conn.Read(make([]byte, 0)) if err!=io.EOF{ // this connection is invalid logger.W("conn closed....",err) }else{ byt, _:= ioutil.ReadAll(conn); } 注意:net: don’t return io.EOF from zero byte reads issue 参考 https://stackoverflow.com/questions/12741386/how-to-know-tcp-connection-is-closed-in-net-package

golang使用官方库实现i18n

示例 package main import ( "fmt" "golang.org/x/text/language" "golang.org/x/text/message" "golang.org/x/text/message/catalog" ) func main() { builder := catalog.NewBuilder() chTag:=language.Make("zh_Hans") engTag:=language.Make("en") builder.SetString(chTag,"hello","您好") builder.SetString(engTag,"hello","Hello") fmt.Println(builder.Languages()) option := message.Catalog(builder) p := message.NewPrinter(chTag,option) p.Printf("hello") p2 := message.NewPrinter(engTag,option) p2.Printf("hello") } 参考 https://zyfdegh.github.io/post/201805-translation-go-i18n https://www.alexedwards.net/blog/i18n-managing-translations https://phrase.com/blog/posts/internationalisation-in-go-with-go-i18n/ https://lokalise.com/blog/go-internationalization-using-go-i18n/ https://go.googlesource.com/proposal/+/master/design/12750-localization.md