@bedolazhka

Можно ли сократить регулярное выражение?

'#^[a-z]+(?:\s[a-z]+)|[а-яё]+(?:\s[а-яё]+)$#ui'
Может кто-то круче пропишет, чтобы избавиться от плагиата a-z, а-яё? :)
p.s. только чтобы функционал остался: или латынь или кириллица с одним пробелом в каждом из наборов
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
miraage
@miraage
Старый прогер
Согласно заданному условию, никак.

В формате PRCE есть \pL, который мог бы сократить запись, но тогда потеряется условие только латынь или только кириллица.

Либо же разбить строку по пробелу, и проверить, что получилось две подстроки и проверить их регуляркой [a-z]+|[а-яё]+
Ответ написан
@dodo512
'#^([a-z]+\s[a-z]+|[а-яё]+\s[а-яё]+)$#ui'
'#^[a-z]+\s[a-z]+$|^[а-яё]+\s[а-яё]+$#ui'
'#^([a-z]+)\s(?1)$|^([а-яё]+)\s(?2)$#ui'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы