2017-02-27 76 views
-7

我有很多字符串,像这样:快速替换字符之间的字符串

'这是一个“表”。 “桌子上”有一个“苹果”。

我想用空格替换“table”,“apple”和“table”。有没有办法做到这一点?

回答

3

一个简单的正则表达式:

let sentence = "This is \"table\". There is an \"apple\" on the \"table\"" 

let pattern = "\"[^\"]+\"" //everything between " and " 
let replacement = "____" 
let newSentence = sentence.replacingOccurrences(
    of: pattern, 
    with: replacement, 
    options: .regularExpression 
) 

print(newSentence) // This is ____. There is an ____ on the ____ 

如果你想保持相同的字符数,那么你可以在比赛迭代:

let sentence = "This is table. There is \"an\" apple on \"the\" table."  
let regularExpression = try! NSRegularExpression(pattern: "\"[^\"]+\"", options: []) 

let matches = regularExpression.matches(
    in: sentence, 
    options: [], 
    range: NSMakeRange(0, sentence.characters.count) 
) 

var newSentence = sentence 

for match in matches { 
    let replacement = Array(repeating: "_", count: match.range.length - 2).joined() 
    newSentence = (newSentence as NSString).replacingCharacters(in: match.range, with: "\"" + replacement + "\"") 
} 

print(newSentence) // This is table. There is "__" apple on "___" table.