本文整理汇总了Golang中bytes.Replace函数的典型用法代码示例。如果您正苦于以下问题:Golang Replace函数的具体用法?Golang Replace怎么用?Golang Replace使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Replace函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RenderSpecialLink
func RenderSpecialLink(rawBytes []byte, urlPrefix string) []byte {
ms := MentionPattern.FindAll(rawBytes, -1)
for _, m := range ms {
rawBytes = bytes.Replace(rawBytes, m,
[]byte(fmt.Sprintf(`<a href="/user/%s">%s</a>`, m[1:], m)), -1)
}
ms = commitPattern.FindAll(rawBytes, -1)
for _, m := range ms {
m = bytes.TrimSpace(m)
i := strings.Index(string(m), "commit/")
j := strings.Index(string(m), "#")
if j == -1 {
j = len(m)
}
rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
` <code><a href="%s">%s</a></code>`, m, ShortSha(string(m[i+7:j])))), -1)
}
ms = issueFullPattern.FindAll(rawBytes, -1)
for _, m := range ms {
m = bytes.TrimSpace(m)
i := strings.Index(string(m), "issues/")
j := strings.Index(string(m), "#")
if j == -1 {
j = len(m)
}
rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
` <a href="%s">#%s</a>`, m, ShortSha(string(m[i+7:j])))), -1)
}
ms = issueIndexPattern.FindAll(rawBytes, -1)
for _, m := range ms {
rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
`<a href="%s/issues/%s">%s</a>`, urlPrefix, m[1:], m)), -1)
}
return rawBytes
}
示例2: Render
// Render a JSON response.
func (j JSON) Render(ctx *fasthttp.RequestCtx, v interface{}) error {
if j.StreamingJSON {
return j.renderStreamingJSON(ctx, v)
}
var result []byte
var err error
if j.Indent {
result, err = json.MarshalIndent(v, "", " ")
result = append(result, '\n')
} else {
result, err = json.Marshal(v)
}
if err != nil {
return err
}
// Unescape HTML if needed.
if j.UnEscapeHTML {
result = bytes.Replace(result, []byte("\\u003c"), []byte("<"), -1)
result = bytes.Replace(result, []byte("\\u003e"), []byte(">"), -1)
result = bytes.Replace(result, []byte("\\u0026"), []byte("&"), -1)
}
w := ctx.Response.BodyWriter()
// JSON marshaled fine, write out the result.
j.Head.Write(ctx)
if len(j.Prefix) > 0 {
w.Write(j.Prefix)
}
w.Write(result)
return nil
}
示例3: doTerrainMap
func (fieldContext *FieldContextDef) doTerrainMap(websocketConnectionContext *websocketConnectionContextDef) *gkerr.GkErrDef {
var gkErr *gkerr.GkErrDef
var singleSession *ses.SingleSessionDef
singleSession = fieldContext.sessionContext.GetSessionFromId(websocketConnectionContext.sessionId)
var messageToClient *message.MessageToClientDef = new(message.MessageToClientDef)
messageToClient.Command = message.SetTerrainMapReq
var jsonFileName string = fieldContext.terrainSvgDir + string(os.PathSeparator) + "map_terrain_" + strconv.FormatInt(int64(singleSession.GetCurrentPodId()), 10) + ".json"
messageToClient.JsonData, gkErr = gkcommon.GetFileContents(jsonFileName)
if gkErr != nil {
return gkErr
}
var lf []byte = []byte("\n")
var tb []byte = []byte("\t")
var sp []byte = []byte(" ")
var nl []byte = []byte("")
var te []byte = []byte("errain")
var bj []byte = []byte("bject")
// Not typos
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, lf, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, sp, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, tb, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, te, nl, -1)
messageToClient.JsonData = bytes.Replace(messageToClient.JsonData, bj, nl, -1)
fieldContext.queueMessageToClient(websocketConnectionContext.sessionId, messageToClient)
return nil
}
示例4: ExampleReplace
func ExampleReplace() {
fmt.Printf("%s\n", bytes.Replace([]byte("oink oink oink"), []byte("k"), []byte("ky"), 2))
fmt.Printf("%s\n", bytes.Replace([]byte("oink oink oink"), []byte("oink"), []byte("moo"), -1))
// Output:
// oinky oinky oink
// moo moo moo
}
示例5: CountPinterestPins
func CountPinterestPins(r *Request) *Result {
var (
resp *http.Response
err error
feed pinterestFeed
body []byte
feedUrl = fmt.Sprintf(pinterestFeedUrl, r.Url())
)
if resp, err = http.Get(feedUrl); err != nil {
return Empty
}
if body, err = ioutil.ReadAll(resp.Body); err != nil {
return Empty
}
body = bytes.Replace(body, []byte("receiveCount("), nil, 1)
body = bytes.Replace(body, []byte(")"), nil, 1)
if err = json.Unmarshal([]byte(body), &feed); err != nil {
return Empty
}
return &Result{Points: feed.Count}
}
示例6: writeTemplate
func writeTemplate() {
jsonWords := ""
nWords := len(foundWords)
wid := 0
for k, v := range foundWords {
if wid%100 == 0 {
fmt.Printf("compiling: %d / %d\n", wid, nWords)
}
wid++
jsonWords += fmt.Sprintf("\"%s\": [\n", k)
for _, w := range v {
jsonWords += fmt.Sprintf("\t[ %d, %d, %d ],\n", w.start, w.step, w.length)
}
jsonWords += "],\n"
}
template, err := gas.ReadFile("github.com/thingalon/code-finder/template.html")
if err != nil {
fmt.Println(err)
os.Exit(0)
}
template = bytes.Replace(template, []byte("[filename]"), []byte(os.Args[1]), 1)
template = bytes.Replace(template, []byte("[content]"), content, 1)
template = bytes.Replace(template, []byte("[words]"), []byte(jsonWords), 1)
outfile := os.Args[1] + ".html"
ioutil.WriteFile(outfile, template, 0644)
fmt.Println("Written to " + outfile)
}
示例7: Render
// Render a JSON response.
func (j JSON) Render(w io.Writer, v interface{}) error {
if j.StreamingJSON {
return j.renderStreamingJSON(w, v)
}
var result []byte
var err error
if j.Indent {
result, err = json.MarshalIndent(v, "", " ")
result = append(result, '\n')
} else {
result, err = json.Marshal(v)
}
if err != nil {
return err
}
// Unescape HTML if needed.
if j.UnEscapeHTML {
result = bytes.Replace(result, []byte("\\u003c"), []byte("<"), -1)
result = bytes.Replace(result, []byte("\\u003e"), []byte(">"), -1)
result = bytes.Replace(result, []byte("\\u0026"), []byte("&"), -1)
}
// JSON marshaled fine, write out the result.
if hw, ok := w.(http.ResponseWriter); ok {
j.Head.Write(hw)
}
if len(j.Prefix) > 0 {
w.Write(j.Prefix)
}
w.Write(result)
return nil
}
示例8: cleanupLine
func cleanupLine(s []byte) []byte {
// strip away various headings from back and front
s = leadingHeadline.ReplaceAll(s, nil)
s = trailingHeadline.ReplaceAll(s, nil)
// strip away leading "> > > " from block quotes
s = blockQuote.ReplaceAll(s, nil)
// is all "-", "=", "*", "|" make empty
// this eliminates various HR variations and
// table decoration and is not a word anyways
if allSymbols.Match(s) {
return []byte{}
}
s = simpleCode.ReplaceAll(s, nil)
// there is no reason to NOT replace `*` `~` or `_` with a space character
// not used in words
s = bytes.Replace(s, []byte{'*'}, nil, -1)
s = bytes.Replace(s, []byte{'~'}, nil, -1)
s = bytes.Replace(s, []byte{'_'}, nil, -1)
// links. [link](/MyURI)
// Stuff inside the "link" can be on different lines, but "](/URI)"
// is all on one line so we can delete ](....space )
// ![ is for images
s = bytes.Replace(s, []byte{'!', '['}, nil, -1)
s = bytes.Replace(s, []byte{'['}, nil, -1)
s = linkTarget.ReplaceAll(s, nil)
return s
}
示例9: processGlGo
func processGlGo(dirName string) {
data, err := ioutil.ReadFile(dirName + "/gl.go")
if err != nil {
log.Fatal("ioutil.ReadFile: ", err)
}
data, _ = format.Source(data)
oldStr := "// #cgo pkg-config: Qt5Core Qt5OpenGL\n"
newStr := "// #cgo !windows pkg-config: Qt5Core Qt5OpenGL\n// #cgo windows LDFLAGS: -L./goqgl -lgoqgl_{{.LibSuffix}}\n"
newStr = strings.Replace(newStr, "{{.LibSuffix}}", libSuffix(dirName), -1)
if *flagRevert {
data = bytes.Replace(data, []byte(newStr), []byte(oldStr), -1)
data, _ = format.Source(data)
err = ioutil.WriteFile(dirName+"/gl.go", data, 0666)
if err != nil {
log.Fatal("ioutil.WriteFile: ", err)
}
return
} else {
data = bytes.Replace(data, []byte(oldStr), []byte(newStr), -1)
data, _ = format.Source(data)
err = ioutil.WriteFile(dirName+"/gl.go", data, 0666)
if err != nil {
log.Fatal("ioutil.WriteFile: ", err)
}
return
}
}
示例10: processGlGo_importPath
func processGlGo_importPath(dirName string) {
data, err := ioutil.ReadFile(dirName + "/gl.go")
if err != nil {
log.Fatal("ioutil.ReadFile: ", err)
}
data, _ = format.Source(data)
oldStr := `"gopkg.in/qml.v1/gl/glbase"`
newStr := `"github.com/chai2010/qml/gl/glbase"`
if *flagRevert {
data = bytes.Replace(data, []byte(newStr), []byte(oldStr), -1)
data, _ = format.Source(data)
err = ioutil.WriteFile(dirName+"/gl.go", data, 0666)
if err != nil {
log.Fatal("ioutil.WriteFile: ", err)
}
return
} else {
data = bytes.Replace(data, []byte(oldStr), []byte(newStr), -1)
data, _ = format.Source(data)
err = ioutil.WriteFile(dirName+"/gl.go", data, 0666)
if err != nil {
log.Fatal("ioutil.WriteFile: ", err)
}
return
}
}
示例11: Request
// Request creates an *http.Request out of Target and returns it along with an
// error in case of failure.
func (t *Target) Request() (*http.Request, error) {
// Dave's hack: replace tokens in body with unix times
miliTimeClipStarted := time.Now().UnixNano()/1000000 - 60000
t.Body = bytes.Replace(t.Body, []byte("__miliTimeClipStarted__"), []byte(strconv.Itoa(int(miliTimeClipStarted))), 1)
nanoTimeNow := time.Now().UnixNano()
miliTimeClipEnded := nanoTimeNow / 1000000
t.Body = bytes.Replace(t.Body, []byte("__miliTimeClipEnded__"), []byte(strconv.Itoa(int(miliTimeClipEnded))), 2)
microTimeNowString := strconv.Itoa(int(nanoTimeNow / 1000))
splitPoint := len(microTimeNowString) - 6
microTimeForStill := fmt.Sprint(microTimeNowString[:splitPoint], ".", microTimeNowString[splitPoint:])
t.Body = bytes.Replace(t.Body, []byte("__microTimeForStill__"), []byte(microTimeForStill), 1)
req, err := http.NewRequest(t.Method, t.URL, bytes.NewBuffer(t.Body))
if err != nil {
return nil, err
}
for k, vs := range t.Header {
req.Header[k] = make([]string, len(vs))
copy(req.Header[k], vs)
}
if host := req.Header.Get("Host"); host != "" {
req.Host = host
}
return req, nil
}
示例12: CmdHelp
func (o *Og) CmdHelp() ([]byte, int) {
if len(o.Args) > 0 {
// TODO: add help shims for gen, parse
return o.Default("help")
}
modifyHelp := func(help []byte, helps []string) []byte {
search := regexp.MustCompile(`(?m)^.+?commands.+$`)
idx := search.FindIndex(help)
left, right := help[:idx[0]], help[idx[1]:]
template := "%sOg commands:\n\n %s\n\nGo commands:%s"
tmp := fmt.Sprintf(template, left, strings.Join(helps, "\n "), right)
return []byte(tmp)
}
out, _ := exec.Command("go").CombinedOutput()
out = bytes.Replace(out, []byte("Go"), []byte("Og"), 1)
out = bytes.Replace(out, []byte("go command"), []byte("og command"), 1)
out = bytes.Replace(out, []byte("go help"), []byte("og help"), -1)
helps := []string{
"gen generate preprocessed source tree",
"parse preprocess one source file",
"update update og command",
}
out = modifyHelp(out, helps)
return out, 0
}
示例13: Write
func (this *Logger) Write(bs []byte) (int, error) {
this.lock.Lock()
defer this.lock.Unlock()
prefix := this.prefix()
suffix := this.suffix()
final := bs
if !this.written || this.lastEndedWithNewline {
this.written = true
final = append([]byte(prefix), final...)
}
if bytes.HasSuffix(final, []byte{byte('\n')}) {
final = final[:len(final)-1]
this.lastEndedWithNewline = true
} else {
this.lastEndedWithNewline = false
}
final = bytes.Replace(final, []byte("\r\n"), []byte("\n"), -1)
final = bytes.Replace(final, []byte("\n"), []byte(suffix+"\n"+prefix), -1)
if this.lastEndedWithNewline {
final = append(final, []byte(suffix)...)
final = append(final, '\n')
}
n, err := this.writer.Write(final)
if n > len(bs) {
n = len(bs)
}
return n, err
}
示例14: getContainerJSON
// GET /containers/{name:.*}/json
func getContainerJSON(c *context, w http.ResponseWriter, r *http.Request) {
name := mux.Vars(r)["name"]
container := c.cluster.Container(name)
if container == nil {
httpError(w, fmt.Sprintf("No such container %s", name), http.StatusNotFound)
return
}
client, scheme := newClientAndScheme(c.tlsConfig)
resp, err := client.Get(scheme + "://" + container.Node.Addr() + "/containers/" + container.Id + "/json")
if err != nil {
httpError(w, err.Error(), http.StatusInternalServerError)
return
}
// cleanup
defer resp.Body.Close()
defer closeIdleConnections(client)
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
httpError(w, err.Error(), http.StatusInternalServerError)
return
}
// insert Node field
data = bytes.Replace(data, []byte("\"Name\":\"/"), []byte(fmt.Sprintf("\"Node\":%s,\"Name\":\"/", cluster.SerializeNode(container.Node))), -1)
// insert node IP
data = bytes.Replace(data, []byte("\"HostIp\":\"0.0.0.0\""), []byte(fmt.Sprintf("\"HostIp\":%q", container.Node.IP())), -1)
w.Header().Set("Content-Type", "application/json")
w.Write(data)
}
示例15: defaultTemplate
// defaultTemplate constructs a default template.
func defaultTemplate(c Config, metadata Metadata, requestPath string) []byte {
var scripts, styles bytes.Buffer
for _, style := range c.Styles {
styles.WriteString(strings.Replace(cssTemplate, "{{url}}", style, 1))
styles.WriteString("\r\n")
}
for _, script := range c.Scripts {
scripts.WriteString(strings.Replace(jsTemplate, "{{url}}", script, 1))
scripts.WriteString("\r\n")
}
// Title is first line (length-limited), otherwise filename
title := metadata.Title
if title == "" {
title = filepath.Base(requestPath)
if body, _ := metadata.Variables["markdown"].([]byte); len(body) > 128 {
title = string(body[:128])
} else if len(body) > 0 {
title = string(body)
}
}
html := []byte(htmlTemplate)
html = bytes.Replace(html, []byte("{{title}}"), []byte(title), 1)
html = bytes.Replace(html, []byte("{{css}}"), styles.Bytes(), 1)
html = bytes.Replace(html, []byte("{{js}}"), scripts.Bytes(), 1)
return html
}