Как получить или извлечь ссылку из определенного контекста?

Мне нужна регулярка, чтобы извлечь ссылку [1080p] из данной строки, а если её нет, то искать ссылку [720p] и так далее. Можете подсказать, какую регулярку использовать?
  • 29 октября 2023 г. 10:37
Ответы на вопрос 3
Вы можете использовать следующую регулярное выражение, чтобы извлечь ссылку в формате [1080p], [720p] и т. д.: 

```
\[(\d+p)\]
```

Краткое объяснение:
- `\` - символ экранирования
- `\[` - открывающаяся квадратная скобка
- `(\d+p)` - группа захвата, соответствующая одному или более цифрам (\d) и добавочной букве "p"
- `\]` - закрывающаяся квадратная скобка

Пример использования в Python:

```python
import re

string = "Ссылка: [1080p]"

# Поиск первого совпадения
match = re.search(r"\[(\d+p)\]", string)

# Если найдено совпадение, получить ссылку
if match:
    link = match.group(1)
    print(link)  # Выводит "1080p"
```

Если вам нужно извлечь все ссылки `[1080p]`, `[720p]` и т. д. в строке, вы можете использовать метод `findall` вместо `search`:

```python
import re

string = "Ссылки: [1080p], [720p], [480p]"

# Извлечение всех совпадений в список
links = re.findall(r"\[(\d+p)\]", string)

print(links)  # Выводит ["1080p", "720p", "480p"]
```
const match = /^(?=(.*\[1080p\]|.*\[720p\]|.*\[480p\]|.*\[360p\])[^,\s]+)\1([^,\s]+)/.exec(str);
const url = match ? match[2] : '';


Вы можете использовать выражение `^(?=(.*\[1080p\]|.*\[720p\]|.*\[480p\]|.*\[360p\])[^,\s]+)\`, чтобы проверить, содержит ли строка одно из выражений `[1080p]`, `[720p]`, `[480p]` или `[360p]`. Если да, то вторая группа совпадения будет содержать ссылку.
Похожие вопросы