ios - 降价和链接的特定正则表达式
问题描述
我在我的 iOS 应用程序中使用 markdownKit,因为它更容易处理带有标题和描述的文本。
我为健身房创建了一个管理面板,这样他们就可以将锻炼分享给他们的成员。有时,他们被添加了这样的锻炼:
- 练习 1
- 练习2等...
而且由于降价,它真的很乱。所以我创建了这个小功能,以删除特殊字符(因为目的不是将其用于降价)。
static func escapeMarkdownCharacters(_ text: String) -> String {
let modString = text.replacingOccurrences(of: "[#>*\\-+]", with: "\\\\$0", options: [.regularExpression])
return modString
}
https://youtu.be/Z9GZoDq-8JU
我现在的问题是,YouTube 链接不再可点击:https://youtu.be/Z9GZoDq\-8JU
因此,链接无法打开。
只有当它不在链接中时,有没有办法替换它?
解决方案
您可以利用 ICU 约束宽度后视模式:
of: "(?<!http\\S{0,255})[#>*+-]"
在这里,它将匹配
(?<!http\S{0,255})
- 一个不紧跟在前面的位置http
和 0 到 255 个非空白字符[#>*+-]
-#
,>
,*
或+
char-
。