Регулярка для url под любые языки мира

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Всем привет.
На сайте использовалась регулярка для url вида Для просмотра ссылки Войди или Зарегистрируйся

Для pagename использовалась регулярка вида
([a-z0-9\\-/]+)
т.е. предполагалось что pagename будет состоять из английских букв, цифр, тире, может быть слэш.
Однако теперь необходимо её переписать с допущением, что pagename может быть на любом языке мира - английском, русском, французком, испанском и т.д. Подскажите как лучше всего составить регулярное выражение.
Версия PHP на сервере 5.6.24
 
  • Заблокирован
  • #2
Такая может подойдет, удалял ссылки в свое время с контента
(http|ftp|https:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
 
Код:
~^(?:(?:https?|ftp|telnet:(//(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{5})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i

Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «рф»
 
Используй поддержку Юникода, unicode character class "\pL"
Примерно так:
Код:
/([a-zA-Z0-9\pL]+)/ug
Проверяем:
Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху