我在我的 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/