How to match words in a string that are wrapped in curly brackets using RegEx with Swift

1 Answer

0 votes
import Foundation

func extractWordsInCurlyBrackets(from str: String) -> [String] {
    // Define the RegEx pattern
    let pattern = #"\{([^}]+)\}"#
    
    // Create the regular expression
    guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
        print("Invalid Regular Expression")
        return []
    }
    
    // Perform the match
    let matches = regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.utf16.count))
    
    // Extract the matches
    var results = [String]()
    for match in matches {
        if let range = Range(match.range(at: 1), in: str) { // Capturing group 1
            results.append(String(str[range]))
        }
    }
    
    return results
}

let str = "This is a {string} with {multiple} {words} wrapped in curly brackets."
let matches = extractWordsInCurlyBrackets(from: str)

print("Matches:", matches)




/*
run:

Matches: ["string", "multiple", "words"]

*/

 



answered Mar 18 by avibootz
...