Задать вопрос

Как написать регулярное выражение без negative lookahead?

Необходимо написать регулярку содержащую ссылку формата magnet: (содержащей urn (хеш) файла)

Пример:
magnet:?xt=urn:btih:b65333c904f35428c09811a0103266 6f98abff67
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Регулярные выражения в Python
    1 неделя
    Далее
  • ProductStar
    Основы Java и ООП
    1 месяц
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Без lookahead нужно использовать обычную группировку (скобки).

Пример для схемы без пробелов:
magnet:\?.*?xt=urn:([a-z]+:[a-f0-9]+)

Пример для btih с пробелами:
magnet:\?.*?xt=urn:btih:([a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы