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

1 Answer

0 votes
import Foundation

func countMatches(in text: String, pattern: String) -> Int {
    let regex = try! NSRegularExpression(pattern: pattern)
    let range = NSRange(text.startIndex..<text.endIndex, in: text)
    return regex.matches(in: text, range: range).count
}

func countCharacters(_ text: String) -> (uppercase: Int, lowercase: Int, digits: Int, special: Int) {
    let uppercase = countMatches(in: text, pattern: "[A-Z]")
    let lowercase = countMatches(in: text, pattern: "[a-z]")
    let digits    = countMatches(in: text, pattern: "\\d")
    let special   = countMatches(in: text, pattern: "[^A-Za-z0-9]")

    return (uppercase, lowercase, digits, special)
}

let s = "Programming&AI@2026!"

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

print("Uppercase:", u)
print("Lowercase:", l)
print("Digits:", d)
print("Special characters:", spc)



/*
run:

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

*/

 



answered Feb 20 by avibootz

Related questions

...