У меня очень специфический формат имени пользователя, и я не могу выполнить его с помощью регулярного выражения
Вот мой пример:
"\w([ ]{4,12})\w"
Специфика формата выглядит следующим образом:
User Name
Мои предыдущие шаблоны не работают должным образом, любое руководство в правильном направлении было бы здорово
Как насчет этого? Он использует отрицательный просмотр, чтобы убедиться, что в любое время он соответствует пробелу, за ним не следует пробел.
\w(\w| (?! )){2,10}\w
\w(?:\w|\s(?!)\s){2,10}\w
для захвата группы, а также не смешивал бы метапоследовательности с литералами, так как это усложняло бы читать.
Вам понадобится регулярное выражение, подобное приведенному ниже:
[a-zA-Z0-9]((?!\s{2,})[a-zA-Z0-9 ]){2,10}[a-zA-Z0-9]
Это:
[a-zA-Z0-9]
: [a-zA-Z0-9]
любой буквенно-цифровой символ,
а также:
(?!\s{2,})
: отрицательный lookhead для 2 или более символов пробела
плюс:
[a-zA-Z0-9 ]
: [a-zA-Z0-9 ]
любой буквенно-цифровой или пробельный символ:
(
... ){2,10}
: от 2 до 10 раз
[a-zA-Z0-9]
: заканчивается буквенно-цифровым символом.