2016-07-15 10 views
0

Hallo ich habe einen Wert, dieSeparate Wert nach bestimmtem Charakter von Raum in Swift

ist

Blockquote 1 1: 0,0644343 1 1: 0,0309334 1 1: 0,0261616 Blockquote

ich mag separater Wert für Raum, aber nach bestimmten Zeichen, um ein Ergebnis wie dieses zu erhalten ... gibt es eine mögliche Lösung. Ich weiß, wir können

Blockquote "1 1: 0,0644343" in regex tun "1 1: 0,0309334" "1 1: 0,0261616" Blockquote

+0

Da nicht alle Räume eine Trennung schaffen, sprechen Sie von einem lexikalischen Analysator (oder, Gott bewahre, ein Parser) von irgendeiner Art. In diesem Fall, warum nicht Regex? – Feldur

Antwort

1

Ich denke, regex ist das perfekte Werkzeug, hier:

var str = "Blockquote 1 1:0.0644343 1 1:0.0309334 1 1:0.0261616 Blockquote" 

let regex = try! NSRegularExpression(pattern: "(\\d \\d:[\\.0-9]+)", options: []) 
let matches = regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count)) 

for m in matches.reverse() { 
    let range = m.rangeAtIndex(1) 
    let startIndex = str.startIndex.advancedBy(range.location) 
    let endindex = startIndex.advancedBy(range.length) 
    let value = str[startIndex..<endindex] 

    str.replaceRange(startIndex..<endindex, with: "\"\(str[startIndex..<endindex])\"") 
} 

print(str) 
+0

Perfekt .Gelagert mein Leben – Davin

Verwandte Themen