Fehler in Golang Regexp ReplacementAllString gefunden?

王林
Freigeben: 2024-02-13 15:51:17
nach vorne
841 Leute haben es durchsucht

Golang Regexp ReplaceAllString 中发现错误?

在Golang开发过程中,使用正则表达式进行字符串替换是常见的操作。然而,有时候在使用ReplaceAllString函数时可能会遇到一些错误。php小编柚子在这里为大家解答这个问题,帮助大家理解并解决Golang Regexp ReplaceAllString中可能出现的错误。无论是初学者还是有经验的开发者,在使用正则表达式进行替换时,都可能遇到一些棘手的问题。下面我们将深入探讨这个问题,并提供一些解决方案,希望能够帮助到大家。

问题内容

package main

import (
    "fmt"
    "regexp"
)

const sample = `darted`

func main() {
    var re = regexp.MustCompile(`^(.*?)d(.*)$`)
    s := re.ReplaceAllString(sample, `$1c$2`)
    fmt.Println(s)//prints 'arted' expected: carted
}
Nach dem Login kopieren

去游乐场:https://go.dev/play/p/-f0cd_81emx

尝试使用非字母字符有效(即“$1.$2”会产生“.arted”)

添加多个字母字符是可行的(即“$1cl$2”会导致“clarted”)

为什么上面的示例不起作用?

有人可以告诉我我做错了什么,或者确认这是 go 中需要报告的错误吗?

解决方法

在你的替代品中:

`$1c$2`
Nach dem Login kopieren

这被解释为字面名为 $1c 的捕获组,该捕获组在正则表达式中不存在。您需要 ${1}c

Das obige ist der detaillierte Inhalt vonFehler in Golang Regexp ReplacementAllString gefunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!