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

verfaa

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

Для pagename использовалась регулярка вида
([a-z0-9\\-/]+)
т.е. предполагалось что pagename будет состоять из английских букв, цифр, тире, может быть слэш.
Однако теперь необходимо её переписать с допущением, что pagename может быть на любом языке мира - английском, русском, французком, испанском и т.д. Подскажите как лучше всего составить регулярное выражение.
Версия PHP на сервере 5.6.24
 

Tonne

Создатель
Регистрация
16 Июл 2012
Сообщения
39
Реакции
59
  • Заблокирован
  • #2
Такая может подойдет, удалял ссылки в свое время с контента
(http|ftp|https:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
 

kreg1g

Писатель
Регистрация
6 Июн 2012
Сообщения
6
Реакции
2
Код:
~^(?:(?: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» и добавить в список доменных зон «рф»
 

antonixus

Постоялец
Регистрация
18 Июл 2016
Сообщения
50
Реакции
36
Используй поддержку Юникода, unicode character class "\pL"
Примерно так:
Код:
/([a-zA-Z0-9\pL]+)/ug
Проверяем:
Для просмотра ссылки Войди или Зарегистрируйся
 
Сверху