我正在尝试替换字符串的第一个字符。使用 this answer , 我可以用我想要的字符替换所有当前字符,但我真正需要的是只替换位于单词开头的字符。
例如将c替换为t:
原文: jack 很酷
新 Sting:Jack 是工具
我的当前代码:
let aString: String = "jack is cool"
let toArray: Array = aString.componentsSeparatedByString(" ")
let newString: String = aString.stringByReplacingOccurrencesOfString("c", withString: "t", options: NSStringCompareOptions.LiteralSearch, range: nil)
这将打印为:
"jatk is tool"
我假设我必须对 newString 中的范围属性做一些事情。
最佳答案
我会使用 regex
. \\b
称为单词边界,它匹配单词字符和非单词字符。您也可以使用负面回顾而不是 \\b
喜欢(?<!\\S)c
var regex:NSRegularExpression = NSRegularExpression(pattern: "\\bc", options: NSRegularExpressionOptions.CaseInsensitive, error: &ierror)!
var modString = regex.stringByReplacingMatchesInString(myString, options: nil, range: NSMakeRange(0, stringlength), withTemplate: "t")
关于arrays - 仅替换字符串中的第一个字符 | swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835148/