替换字符串中的特定字符

时间:2019-01-14 15:29:47

标签: swift replace swift3

我目前正在尝试使用Swift 3替换字符串中的特定字符。

var str = "Hello"    
var replace = str.replacingOccurrences(of: "Hello", with: "_____")    
print(replace)

这将打印:_____,但是当str更改并且由不同数量的字符或几个单词组成时,我的问题发生了,例如:

var str = "Hello World"

现在,我希望替换变量在str更改时自动更新。除“空格”外的所有字符均应替换为_,然后再打印_____ _____,该字符应代表“ Hello World”。

是否想到了如何实现?

2 个答案:

答案 0 :(得分:1)

如果要替换所有单词字符,可以将regularExpressions输入用于以前使用的同一函数的options参数,只需将特定的String输入更改为{{1} },它将匹配所有单词字符。

\\w

请记住,let str = "Hello World" let replace = str.replacingOccurrences(of: "\\w", with: "_", options: .regularExpression) // "_____ _____" 也不会替换其他特殊字符,因此对于输入\\w,它将产生"Hello World!"。如果要替换除空格以外的所有字符,请使用"_____ _____!"

\\S

答案 1 :(得分:0)

  

除“空格”外的所有字符均应替换为_

有几种选择。您可以map()替换每个字符,并将结果组合为字符串:

let s = "Swift is great"
let t = String(s.map { $0 == " " ? $0 : "_" })
print(t) // _____ __ _____

或者使用正则表达式,\S是“非空白字符”的模式:

let t = s.replacingOccurrences(of: "\\S", with: "_", options: .regularExpression)
print(t) // _____ __ _____