Maison >développement back-end >Golang >Comment remplacer correctement les chaînes en golang par le « principe gourmand » ?
J'ai essayé de bloquer la chaîne, mais quelque chose s'est mal passé
Le code reproductible est ci-dessous et nécessite toutes les anciennes et nouvelles paires, comment l'obtenir col1
而不是 col0b
?
package main import ( "fmt" "strings" ) func main() { r := strings.NewReplacer("a", "col0", "ab", "col1") s := "ab" fmt.Println(r.Replace(s)) }
Je veux que la chaîne soit remplaçable par la longueur maximale ou le principe gourmand
Selon la documentation, le remplacement de NewReplacer exécute les chaînes dans l'ordre dans lequel elles apparaissent dans la cible, sans correspondances qui se chevauchent, donc il suivra toujours la première base de correspondance. Si cela est autorisé, je pense que vous pourriez résoudre ce problème en réorganisant les paires de remplacement afin que la chaîne la plus longue (“ab”-“col1”
)放置在较短的字符串(“a”,“col0”
) passe avant
package main import ( "fmt" "strings" ) func main() { r := strings.NewReplacer("ab", "col1", "a", "col0") s := "ab" fmt.Println(r.Replace(s)) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!