将多个 replacingOccurrences() 与 Swift 组合

Combine multiple replacingOccurrences() with Swift

我有一个字符串,我想向特定字符添加反斜杠,因为我使用 markdown 并且我不想添加不需要的样式。

我试着做了一个函数,它可以工作,但我猜它效率不高:

func escapeMarkdownCharacters(){
      let myString = "This is #an exemple #of _my_ * function"
      var modString = myString.replacingOccurrences(of: "#", with: "\#")
      modString = modString.replacingOccurrences(of: "*", with: "\*")
      modString = modString.replacingOccurrences(of: "_", with: "\_")
      print(modString) // Displayed: This is \#an exemple \#of \_my\_ \* function 
}

我希望只有一个 "replacingOccurences" 可以用于多个字符 。我想我可以用正则表达式做到这一点,但我不知道怎么做。如果您有想法,请与我分享。

您可以使用

var modString = myString.replacingOccurrences(of: "[#*_]", with: "\\[=10=]", options: [.regularExpression])

使用原始字符串文字:

var modString = myString.replacingOccurrences(of: "[#*_]", with: #"\[=11=]"#, options: [.regularExpression])

结果:This is \#an exemple \#of \_my\_ \* function

options: [.regularExpression] 参数启用正则表达式搜索模式。

[#*_] 模式匹配 #*_,然后每个匹配都替换为反斜杠 (\\) 和匹配值([=19=])。请注意,替换字符串中的反斜杠必须加倍,因为反斜杠在替换模式中具有特殊含义(当 $ 前面有反斜杠时,它可用于使 [=19=] 成为文字字符串)。