У меня есть URL-адрес изображения, из которого мне нужно извлечь UUID. URL формируется следующим образом:Извлечь строку между двумя специальными символами
"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"
Этот URL указывает на изображение, в моем ведре, где его формат зовут /images/[username]/[UUID]
. Мне нужно получить этот UUID, чтобы удалить его, чтобы он не занимал места, когда пользователь загружает новое изображение (которое заменяет существующее).
Я попытался тестирования этого here со следующим регулярным выражением: \%([A-Z0-9-]+)\.
По сути, я хочу, чтобы извлечь весь текст между %2F
и периодом (.
), который является, где UUID является (356BEDA3-E0B2-4659-9DE2-37FC8C13CDF7
). Он успешно соответствовал шаблону, который я хотел (в разделе «информация о совпадении») ... ну, включая 2F
, который на самом деле является экранированной косой чертой.
Однако при использовании его в Swift, это на самом деле соответствие символы, включая и после того, как первый %
(выход %2Fj
). Я попытался это:
let regex = Regex("%([A-Z0-9-]+).")
if let match = regex.match(self.existingItem.photoURL) {
print(match.matchedString)
}
Side Примечание: Я использую this рамки Regex.
Может ли кто-нибудь пролить некоторое представление о том, почему это происходит в Свифт и как его исправить?
'% ([A-Z0-9 -] +) \.' – rock321987
@ rock321987 Вы правы, вы должны ответить на свое решение. – Moritz
@Wiktor Stribiżew уже ответил .. не нужно добавлять избыточность – rock321987