Добавить -> в качестве разделителя к шаблону URL
Для извлечения URL я использую это регулярное выражение:
'/https?\:\/\/[^\",\s\]\|]+/i'
(заканчивается пробелом ", запятой или |).
Проблема в том, что мне тоже нужно добавить -->
" (3 символа -->
) как разрыв URL. Однако не повезло.
PS Я знаю, что это не идеальная проверка URL, однако URL хранятся в строке в БД, а пробел, запятая, ", | и -> определенно являются разделителями URL (если встречаются в конце).
2 ответа
Решение
2017-02-25 12:26
Чтобы остановиться на многосимвольном разделителе, шаблон должен многократно продвигаться на 1 символ до тех пор, пока вы не найдете разделитель в предвкушении:
(?:(?!delimiter).)*
В твоем случае:
https?://(?:(?!-->)[^",\]\s|])+