【问题标题】:Specific regex for markdown and links降价和链接的特定正则表达式
【发布时间】:2020-11-02 13:23:44
【问题描述】:

我在我的 iOS 应用中使用 markdownKit,因为它更容易处理文本 带有标题和描述。

我为健身房创建了一个管理面板,这样他们就可以将锻炼分享给他们的会员。 有时,他们会被添加这样的锻炼:

  • 练习 1
  • 练习 2 等...

而且由于降价,它真的很乱。所以我创建了这个小功能,为了去除特殊字符(因为它的目的不是用于降价)。

static func escapeMarkdownCharacters(_ text: String) -> String {
      let modString = text.replacingOccurrences(of: "[#>*\\-+]", with: "\\\\$0", options: [.regularExpression])
      return modString
}

我现在的问题是,YouTube 链接不再可点击:https://youtu.be/Z9GZoDq-8JU 变为 https://youtu.be/Z9GZoDq\-8JU,因此无法打开链接。

有没有办法只替换不在链接中的出现?

【问题讨论】:

  • 好吧,你可以使用类似of: "(?<!http\\S{0,255})[#>*+-]"
  • 它似乎完成了这项工作!非常感谢!

标签: ios swift regex swift5


【解决方案1】:

您可以利用 ICU 约束宽度后视模式:

of: "(?<!http\\S{0,255})[#>*+-]"

这里会匹配

  • (?&lt;!http\S{0,255}) - 前面没有紧跟 http 和 0 到 255 个非空白字符的位置
  • [#&gt;*+-] - #&gt;*+- 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 2021-05-29
    • 2021-08-28
    • 2021-05-30
    • 2014-03-06
    • 2016-12-07
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多