ios - Markdown 和链接的特定正则表达式

标签 ios swift regex swift5

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

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

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

而且由于 Markdown ,它真的很乱。所以我创建了这个小函数,以删除特殊字符(因为目的不是将它用于 Markdown )。

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 因此无法打开链接。

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

最佳答案

您可以利用 ICU constrained-width lookbehind 模式:

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

在这里,它将匹配

  • (?<!http\S{0,255}) - 不紧跟 http 的位置和 0 到 255 个非空白字符
  • [#>*+-] - # , > , * , +-字符。

关于ios - Markdown 和链接的特定正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64646428/

相关文章:

ios - 如何正确解析本地XML?

iOS Assets 规模和设计方法

swift - 我们应该总是在 Swift 的闭包中使用 [unowned self] 吗?

ios - 错误 : unreachable because it has no entry points

使用正则表达式的 Python 跨文件搜索

Python正则表达式匹配字符串末尾的标点符号

javascript - 为什么 String.prototype.match() 返回 null 而不是空数组?

ios - 无法从 iOS 应用程序访问 Firebase 存储默认存储桶

ios - 在 Swift 中使用多行获取 UILabel 高度

ios - AVCaptureSession 视频稳定滞后