Swift替换String中的完整行

时间:2016-11-01 21:45:09

标签: swift

我在String中有多行,例如:

let str = "Mieter: Hannes Tester \nVerwalter: Michael Karner \n"

现在我要删除“Mieter”和换行符之间的整个句子。所以结果应该是:

let str = "Verwalter: Michael Karner \n"

我可以用Regex查看,但我只能得到两个单词之间的字符串。例如:

if let match = str.rangeOfString("(?<=Mieter)[^\n]+", options: .RegularExpressionSearch) {
    print(str.substringWithRange(match)) // between
}

但我怎样才能更换整条线?

修改:

它在字符串之间不再起作用了:

let str = "Test \n Mieter: \n Hausverwalter: \n Firma: \n"

str.stringByReplacingOccurrencesOfString("^Mieter[^\n]+\\s", withString: "", options: .RegularExpressionSearch, range: nil)

// so "Mieter \n" is not being replaced.

1 个答案:

答案 0 :(得分:3)

使用replacingOccurrencesOf

let str = "Mieter: Hannes Tester \nVerwalter: Michael Karner \n"
str.replacingOccurrences(of: "^Mieter[^\n]+\\s", with: "", options: .regularExpression)

这是Swift 3代码

修改

如果子字符串不在字符串的开头,则删除前导插入符号(^)。