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
*/