How to count uppercase, lowercase, special characters, and numeric values using RegEx in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "regexp"
)

func countMatches(text, pattern string) int {
    re := regexp.MustCompile(pattern)
    return len(re.FindAllString(text, -1))
}

func countCharacters(text string) (uppercase, lowercase, digits, special int) {
    uppercase = countMatches(text, `[A-Z]`)
    lowercase = countMatches(text, `[a-z]`)
    digits    = countMatches(text, `\d`)
    special   = countMatches(text, `[^A-Za-z0-9]`)
    return
}

func main() {
    s := "Programming&AI@2026!"

    u, l, d, spc := countCharacters(s)

    fmt.Println("Uppercase:", u)
    fmt.Println("Lowercase:", l)
    fmt.Println("Digits:", d)
    fmt.Println("Special characters:", spc)
}



/*
run:

Uppercase: 3
Lowercase: 10
Digits: 4
Special characters: 3

*/

 



answered Feb 20 by avibootz

Related questions

...