19

英数字以外の文字シーケンスをダッシュ​​に置き換えたい。私が書いたもののスニペットは以下のとおりです。しかし、それは機能せず、その理由はまったくわかりません。スニペットが期待どおりに動作しない理由と、これを達成するための正しい方法を誰かに説明してもらえますか?

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {
    reg, _ := regexp.Compile("/[^A-Za-z0-9]+/")
    safe := reg.ReplaceAllString("a*-+fe5v9034,j*.AE6", "-")
    safe = strings.ToLower(strings.Trim(safe, "-"))
    fmt.Println(safe)  // Output: a*-+fe5v9034,j*.ae6
}
4

1 に答える 1

33

スラッシュが文字列と一致しません。

package main

import (
        "fmt"
        "log"
        "regexp"
        "strings"
)

func main() {
        reg, err := regexp.Compile("[^A-Za-z0-9]+")
        if err != nil {
                log.Fatal(err)
        }

        safe := reg.ReplaceAllString("a*-+fe5v9034,j*.AE6", "-")
        safe = strings.ToLower(strings.Trim(safe, "-"))
        fmt.Println(safe)   // Output: a*-+fe5v9034,j*.ae6
}

こちらも)

出力

a-fe5v9034-j-ae6
于 2012-12-02T19:52:29.640 に答える