@rinaz22

Почему не работает рег. выражение?

Всем привет! Написал такую регулярку:
preg_match_all("/(http\:\/\/|https\:\/\/|\/\/|http\:\\\/\\\/|https\:\\\/\\\/)[0-9A-z\.\/_-]+\.(?:jp(?:e?g|e|2)|gif|png|tiff?|bmp|css|js|EOT|TTF|OTF|CFF|AFM|LWFN|FFIL|FON|PFM|PFB|WOFF|SVG|STD|PRO|XSF)+/i", $text, $arr);

Он должен искать все ссылку в файле с нужными форматами.
В regex101 все прекрасно работает, а в php нет.
https://regex101.com/r/Wwj9W6/1
Когда проверял с помощью preg_last_error(), вывел ошибку PREG_INTERNAL_ERROR
Пробовал менять pcre.recursion_limit в файле php.ini
Но ничего не помогло. Из-за чего может быть ошибка?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Скорее уж тогда так:
preg_match_all("@(https?:(?://|\\\\/\\\\/)[0-9A-z.\\\\/_-]+?\.(?:jp(?:e?g|e|2)|gif|png|tiff?|bmp|css|js|EOT|TTF|OTF|CFF|AFM|LWFN|FFIL|FON|PFM|PFB|WOFF|SVG|STD|PRO|XSF))@i", $text, $arr);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы