How to declare a RegEx with character repetition to match the strings "http", "htttp", "httttp", etc in Swift

1 Answer

0 votes
import Foundation

let pattern = "^(htt+p)$"

let testStrings = ["http", "htttp", "httttp", "httpp", "htp"]

func matches(_ regex: String, _ text: String) -> Bool {
    let range = NSRange(location: 0, length: text.utf16.count)
    guard let regex = try? NSRegularExpression(pattern: regex) else { return false }
    return regex.firstMatch(in: text, options: [], range: range) != nil
}

for test in testStrings {
    let match = matches(pattern, test)
    print("Matches \"\(test)\": \(match)")
}


// Matches "httpp": True or false, depending on how matches() method works
 
 
/*
run:
 
Matches "http": true
Matches "htttp": true
Matches "httttp": true
Matches "httpp": false
Matches "htp": false
 
*/

 



answered May 16, 2025 by avibootz
...