J'ai une image URL dont je dois extraire l'UUID. L'URL est formée comme suit :
"https://firebasestorage.googleapis.com/v0/b/project-6312172760840445565.appspot.com/o/images%2Fjohn%2F356BEDA3-E0B2-4659-9DE2-37FC8C13CDF7.webp?alt=media&token=f0c16de2-c1d9-4392-8f5b-9aa5c0527ea3"
Cette URL pointe vers l'image dans mon panier, où le format de son nom est le suivant /images/[username]/[UUID]
. J'ai besoin d'obtenir cet UUID afin de le supprimer pour qu'il n'occupe pas d'espace lorsque l'utilisateur télécharge une nouvelle image (qui remplace l'image existante).
J'ai essayé de tester ceci ici avec l'expression rationnelle suivante : \%([A-Z0-9-]+)\.
Essentiellement, je veux extraire tout le texte compris entre un %2F
et une période ( .
), où se trouve l'UUID ( 356BEDA3-E0B2-4659-9DE2-37FC8C13CDF7
). Il a réussi à faire correspondre le modèle que je souhaitais (sous "informations de correspondance")... bien, y compris l'élément 2F
qui est en fait une barre oblique échappée.
Cependant, lorsqu'on l'utilise dans Swift, il s'agit en fait de faire correspondre les caractères incluant et suivant le premier %
(le résultat est %2Fj
). J'ai essayé ceci :
let regex = Regex("%([A-Z0-9-]+).")
if let match = regex.match(self.existingItem.photoURL) {
print(match.matchedString)
}
Note complémentaire : j'utilise cette Cadre Regex.
Quelqu'un peut-il nous expliquer pourquoi cela se produit en Swift et comment y remédier ?