Extrahieren von Regex-Übereinstimmungen in Swift
Hallo zusammen! Ich bin neu in Swift und versuche, Daten aus einem String mit regulären Ausdrücken zu extrahieren. Ich habe einen String wie: "Hallo, ich heiße Ivan, ich bin 25 Jahre alt, ich lebe in Moskau". Ich möchte Name, Alter und Stadt separat extrahieren. In anderen Sprachen (z.B. Python) habe ich `re.findall()` verwendet, aber in Swift ist alles anders.
Ich habe versucht, `NSRegularExpression` zu verwenden, aber ich bin verwirrt. Hier ist mein Code:
```swift
let text = "Hallo, ich heiße Ivan, ich bin 25 Jahre alt, ich lebe in Moskau"
let pattern = "Ivan|25|Moskau"
let regex = try? NSRegularExpression(pattern: pattern)
let matches = regex?.matches(in: text, range: NSRange(location: 0, length: text.utf16.count))
for match in matches ?? [] {
print((text as NSString).substring(with: match.range))
}
```
Das funktioniert, aber nur, wenn ich die Werte fest codiere. Ich muss die Daten dynamisch extrahieren: Name (jedes Wort nach "heiße"), Alter (jede Zahl nach "bin"), Stadt (jedes Wort nach "in"). Ich habe versucht, ein Pattern mit capturing groups zu schreiben, z.B.