Регулярные выражения: Как написать паттерн для извлечения всех ссылок на aliexpress.ru/item/ из массива текстовых строк?

Для извлечения всех ссылок вида aliexpress.ru/item/ из массива текстовых строк используется регулярное выражение. Рассмотрим универсальный паттерн и его применение на разных языках программирования.

## Универсальный паттерн

Базовое регулярное выражение:

https?://(?:www.)?aliexpress.ru/item/[w-/]+(?:.html)?(?:?[^s»‘>]*)?

Разбор паттерна:
— https?:// — поддерживает как http, так и https
— (?:www.)? — необязательный префикс www
— aliexpress.ru/item/ — точное совпадение домена и пути (точка экранирована)
— [w-/]+ — идентификатор товара, состоящий из букв, цифр, дефисов и слешей
— (?:.html)? — необязательное расширение .html
— (?:?[^s»‘>]*)? — необязательная строка параметров запроса (UTM-метки, реферальные параметры)

## Пример на Python

import re

pattern = r’https?://(?:www.)?aliexpress.ru/item/[w-/]+(?:.html)?(?:?[^s»‘>]*)?’
lines = [
‘Купи здесь: https://www.aliexpress.ru/item/1005004567891234.html?spm=a2g2w’,
‘Ссылка: https://aliexpress.ru/item/32987654321.html’,
‘Просто текст без ссылки’
]

all_links = []
for line in lines:
found = re.findall(pattern, line)
all_links.extend(found)

print(all_links)

## Пример на JavaScript

const pattern = /https?://(?:www.)?aliexpress.ru/item/[w-/]+(?:.html)?(?:?[^s»‘>]*)?/g;
const lines = [
‘Товар: https://www.aliexpress.ru/item/1005001234567890.html’,
‘Другой текст’
];

const allLinks = lines.flatMap(line => line.match(pattern) || []);
console.log(allLinks);

## Пример на PHP

$pattern = ‘/https?://(?:www.)?aliexpress.ru/item/[w-/]+(?:.html)?(?:?[^s»‘>]*)?/i’;
$lines = [
‘Ссылка: https://www.aliexpress.ru/item/1005001234567890.html?utm_source=google’,
];
$allLinks = [];
foreach ($lines as $line) {
preg_match_all($pattern, $line, $matches);
$allLinks = array_merge($allLinks, $matches[0]);
}
print_r($allLinks);

## Важные нюансы

1. Если ссылки могут содержать кириллицу в параметрах — добавьте поддержку Unicode-символов.
2. Для очень длинных URL с вложенными путями расширьте класс символов.
3. Флаг re.IGNORECASE (или /i в PHP/JS) позволяет игнорировать регистр домена.
4. Паттерн намеренно не захватывает якоря (#section), так как они редко встречаются в товарных ссылках AliExpress.

Данный паттерн покрывает подавляющее большинство реальных форматов ссылок на товары AliExpress.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.