【发布时间】:2020-08-25 12:05:10
【问题描述】:
假设我们有字符串"asd as asdsd",我需要在"asd"之前和之后插入"<*>",所以结果应该是:"<*>asd<*> as <*>asd<*>sd"。
插入应该不区分大小写,所以如果目标是"ASD",结果是一样的:"<*>asd<*> as <*>asd<*>sd"
我试过了
a.insert(contentsOf: separator, at: a.range(of: "asd", options: .caseInsensitive)!.upperBound)
a.insert(contentsOf: separator, at: a.range(of: "asd", options: .caseInsensitive)!.lowerBound)
但分隔符只插入"asd"的第一次出现
【问题讨论】:
-
用
"<*>" + "asd" + "<*>"代替"asd"怎么样?你可以使用a = a.replacingOccurrences(of: "asd", with: "<*>$0<*>", options: [.caseInsensitive, .regularExpression])? -
@Larme 这确实有效,
$0和. regularExpression做到了,谢谢! -
@Larme 我认为您应该将其发布为答案。
-
@Alladinian 当已经有其他问题时 stackoverflow.com/questions/52400793/… stackoverflow.com/questions/61010309/… 等。好的“想法”替换整个而不是两次,因为上限/下限更难。跨度>