How to extract a file name from a path, replace whitespaces, and make it lowercase using RegEx in Go

1 Answer

0 votes
package main

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

func normalizeFilename(filePath string) string {
    // Extract only the file name using regex
    re := regexp.MustCompile(`^.*[\\/](.*)$`)
    matches := re.FindStringSubmatch(filePath)
    filename := filePath
    if len(matches) > 1 {
        filename = matches[1]
    }

    // Replace whitespaces with underscores
    filename = strings.ReplaceAll(filename, " ", "_")

    // Convert to lowercase
    filename = strings.ToLower(filename)

    return filename
}

func main() {
    filePath := `c:\path\to\file\WITH Whitespace1 and Whitespace2.go`
    result := normalizeFilename(filePath)
    
    fmt.Println(result) 
}



/*
run:

with_whitespace1_and_whitespace2.go

*/

 



answered Jul 15, 2025 by avibootz
...