可以使用正则表达式中的替换函数来替换文件名中不符合要求的字符。
例如,假设我们需要将文件名中的所有非字母数字和点号(.)替换为下划线(_),可以使用以下代码:
package main
import (
"fmt"
"regexp"
)
func main() {
filename := "file?name&with#special*characters.txt"
// 定义正则表达式
re := regexp.MustCompile("[^a-zA-Z0-9.]")
// 将非字母数字和点号替换为下划线
newFilename := re.ReplaceAllString(filename, "_")
fmt.Println(newFilename)
}
输出结果为:
file_name_with.special.characters.txt
在上面的代码中,首先定义了一个正则表达式[^a-zA-Z0-9.]
,用来匹配非字母数字和点号。然后使用ReplaceAllString
函数将匹配到的字符替换为下划线。最后输出替换后的文件名。