我的replacementOccurrences函数出现问题。我有一个像这样的字符串:
let x = "john, johnny, johnney"
我需要做的只是删除" john"
所以我有这段代码:
y = "john"
x = x.replacingOccurrences(of: y, with: " ", options: NSString.CompareOptions.literal, range: nil)
我得到的问题是这删除了所有john的实例...而且我考虑设置范围,但是,它不会真正解决我的问题,因为名称可能是不同的顺序。
是否有一个CompareOptions功能,我忽略了"确切"或者我是否需要创建正则表达式?
此致
Denis Angell
答案 0 :(得分:1)
您应该使用正则表达式来匹配确切的单词,您只需要在\b
之间放置所需的单词。试试这样:
let x = "johnny, john, johnney"
let y = "john"
let z = x.replacingOccurrences(of: "\\b\(y)\\b", with: " ", options: .regularExpression) // "johnny, , johnney"
let x = "johnny &john johnney"
let y = "&john"
let z = x.replacingOccurrences(of: y + "\\b", with: " ", options: .regularExpression)
答案 1 :(得分:0)
正则表达式可能是您的最佳选择,因为没有适用于所有语言的“完全”的一般规则。在英语和大多数浪漫语言中,您将“精确”定义为在要替换的单词之前或之后没有字母字符。
正则表达式可以相对简单地表达英语,因为没有复杂的字母组合,而a-z几乎全部都是。在其他语言中,您将不得不担心变音符号(法语,其他拉丁语言),在阿拉伯语中您需要考虑一些单词开头的组合字母A(Aleph),依此类推。