Wie Sie die Gruppe suchen, reguläre Ausdrücke mit swift
In regulären Ausdrücken können Sie die Gruppe verschiedene Spiele zu leicht "pattern match" ein Spiel.
while match != nil {
match = source.rangeOfString(regex, options: .RegularExpressionSearch)
if let m = match {
result.append(source.substringWithRange(m)
source.replaceRange(m, with: "")
}
}
Den oben genannten Werken zu finden zu finden, eine Reihe von dem Spiel, aber kann es nicht sagen, mich der Gruppe. Zum Beispiel, wenn ich nach Worten suchen, eingekapselt in "" ich möchte das Spiel "Wort", das aber schnell Holen nur das Wort
Ist es möglich, dies zu tun in swift?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Swift ist ziemlich hässlich, jetzt mit regulären Ausdrücken-wir hoffen auf mehr-native Unterstützung bald! Die Methode, die auf
NSRegularExpression
Sie wollen, istmatchesInString
. Hier ist, wie es zu benutzen:Ausgabe:
Diese können Sie verwenden, wenn Sie sammeln möchten, die übereinstimmenden Zeichenfolgen.
(Meine Antwort ist abgeleitet von Nate Kocht sehr hilfreiche Antwort.)
Aktualisiert für Swift 2.1
Aktualisiert für Swift 3.0
"This is my \"string\" of \"words\".".regexMatches("(my )|(of )\"(.+?)\"")
. Die zwei Bereiche, die es findet, sind:["(8,3)", "(9223372036854775807,0)"]
wie über diese Leute, fügen Sie als Erweiterung zu String? )) alle Spiele, alle Gruppen ) selbst = String, wenn Sie hinzufügen wollen, nicht als Erweiterung fügen Sie die String-parameter, und ersetzen Sie alle selbst auf Ihre parameter 🙂
Alle Antworten sind gut, aber dennoch werde ich zu bieten meine
String
extension geschrieben in Swift 2.2.Bemerkt Unterschiede:
.
Verwenden:
Aktualisiert Swift 4
Verwenden:
Gist auf github: https://gist.github.com/unshapedesign/1b95f78d7f74241f706f346aed5384ff