使用swift正则表达式替换为函数而不是字符串

时间:2018-03-28 16:31:28

标签: swift regex

在Javascript中,您可以replace a string with a function。有没有办法在Swift中使用NSRegularExpression

执行此操作

我想做相同的

"*Hello there*".replace(/(\*).*?(\*)/g, function(match, p1, p2, p3) {
    return "<i>" + p2 + "</i>"
})
在Swift中

,因为我正在写一个降价解析器。

1 个答案:

答案 0 :(得分:0)

你不能但是你可以解决插入标签的问题,然后删除参考字符:

let str = "*Hello there*"
let result = str
    .replacingOccurrences(of: "(\\*.*?\\*)", with: "<i>"+"$1"+"</i>", options: .regularExpression)
    .replacingOccurrences(of: "\\*(.*?)\\*", with: "$1", options: .regularExpression)
print(result)  //  "<i>Hello there</i>"