mirror of
https://github.com/yattee/yattee.git
synced 2025-08-05 02:04:07 +00:00
Add tappable description links and timestamps in iOS
This commit is contained in:
@@ -7,4 +7,29 @@ extension String {
|
||||
}
|
||||
return replacingCharacters(in: range, with: replacement)
|
||||
}
|
||||
|
||||
func replacingMatches(regex: String, replacementStringClosure: (String) -> String?) -> String {
|
||||
guard let regex = try? NSRegularExpression(pattern: regex) else {
|
||||
return self
|
||||
}
|
||||
|
||||
let results = regex.matches(in: self, range: NSRange(startIndex..., in: self))
|
||||
|
||||
var outputText = self
|
||||
|
||||
results.reversed().forEach { match in
|
||||
(1 ..< match.numberOfRanges).reversed().forEach { rangeIndex in
|
||||
let matchingGroup: String = (self as NSString).substring(with: match.range(at: rangeIndex))
|
||||
let rangeBounds = match.range(at: rangeIndex)
|
||||
|
||||
guard let range = Range(rangeBounds, in: self) else {
|
||||
return
|
||||
}
|
||||
let replacement = replacementStringClosure(matchingGroup) ?? matchingGroup
|
||||
|
||||
outputText = outputText.replacingOccurrences(of: matchingGroup, with: replacement, range: range)
|
||||
}
|
||||
}
|
||||
return outputText
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user