#swift #regex
#swift #регулярное выражение
Вопрос:
Я хочу перехватывать href
теги со ссылкой на YouTube внутри них.
У меня есть это регулярное выражение:
"<a.*?href=(.*?youtu.?be.*?)>.*?</a>"
Это работает, но не останавливается, если тег закрыт.
Это означает, что если у меня есть:
<a href=www.google.come>google</a> <a href=www.youtube.com>youtube</a>
Желаемый результат:
<a href=www.youtube.com>youtube</a
Фактический результат:
<a href=www.google.come>google</a> <a href=www.youtube.com>youtube</a>
Он улавливает все это, распознав Google <a
как открывающий, а youtubes </a>
как более близкий.
Я хочу сделать свое регулярное выражение немного умнее, чтобы оно знало, как остановить совпадение при появлении Google closer и начать новую попытку сопоставления при появлении Youtube opener.
Я пробовал это, но это не сработало:
"<a.*?[^>]href=(.*?youtu.?be.*?)>.*?</a>"
А также попробовал это:
"<a[^>].*?href=(.*?youtu.?be.*?)>.*?</a>"
Ответ №1:
Вы можете попробовать этот шаблон :
"<a[^>]*?href=[^>]*?youtu.?be[^>]*?>[^>]*?</a>"