Golang正则表达式替换什么也没做

时间:2012-12-02 19:29:16

标签: regex go

我想用破折号替换任何非字母数字字符序列。我写的内容摘要如下。然而它不起作用,我完全无能为力。任何人都可以解释一下为什么代码片段的行为不像我期望的那样以及实现这一目标的正确方法是什么?

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
}

1 个答案:

答案 0 :(得分:31)

正斜杠与您的字符串不匹配。

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
}

(还here

输出

a-fe5v9034-j-ae6
相关问题