import Foundation
let pattern = #"(?i)\[\[(?<firstlevelfolder>(?:assets|Bücher|Dokument|epsilon_notes|kontakte|literatur|Projekt|Test|Wissen|WV)(?:[\w_]*)\/)(?<bildpfad>[^\|\\\]]+)(\\\||\|)*(?<bildattribut>[^\]]*)\]\]"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ##"""
Link zum Bild:
![[Projekte/Mikroskop/_resources/f04ae6b6a924e20e761dce25603b3bd8.jpg]]
![[assets/(15) Bigger Arms Workout (Dumbbells Only) - YouTube - 3 34.jpeg]]
![[subfolder/image.png|100x100]]
![[subfolder/sub2/image.png|100x100]]
![[../../ima/ge.png|100x100]]
[[Dokumente/Gesundheit/Dave/_Dave_overview]]
![[Projekte/image.png|100x100]]
![[Projekte_irgendwas/image.Png|100x100]]
[[assets/MiSZ 2T.pdf]]
[[assets2/MiSZ 2T.pdf]]
![[Projekte/Mikroskop/Leica, Wild/Product Guide for Stereomicroscopes. Living up to Life.pdf]]
![[BA_GSZ 2_GSZ 2T.pdf#page=7]]
![[BA_GSZ 2_GSZ 2T.pdf]]
Beispiel-tabelle:
Caption1 | Caption2 |
---|---|
Content1 text | Link innerhalb Tabelle mit Attributen
![[Projekte/Mikroskop/_resources/f04ae6b6a924e20e761dce25603b3bd8.jpg\|300]] |
vorerst letzte Zeile | Text Text Text |
![[Projekte/Mikroskop/_resources/f04ae6b6a924e20e761dce25603b3bd8.jpg\|200]]
"""##
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = ##"[<span style="color:blue">CPLinkToFile: </span> <span style="background-color: #caecff; color:blue">**${firstlevelfolder}${bildpfad}**</span>](/storage/emulated/0/onedrive/obsidian/${firstlevelfolder}${bildpfad})"##
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression