регулярное выражение совпадения символов слова с одним пробелом между любыми словами

1

У меня очень специфический формат имени пользователя, и я не могу выполнить его с помощью регулярного выражения

Вот мой пример:

"\w([ ]{4,12})\w"

Специфика формата выглядит следующим образом:

  • Имя пользователя должно быть больше или равно 4 символам, но менее 13 символов.
  • Имя пользователя не может содержать пробелы в качестве первого или последнего символа
  • Имя пользователя не может содержать последовательное пробелы (или любое другое пространство без символов), например: User Name
  • Имя пользователя может не содержать каких-либо специальных символов, допускаются только символы слова, числа и пробелы
  • Должны быть символы слова до и после пробела

Мои предыдущие шаблоны не работают должным образом, любое руководство в правильном направлении было бы здорово

  • 0
    Какой вкус регулярных выражений? Это имеет большое значение в том, какие элементы мы можем предложить.
  • 0
    Я использую движок Java regex, как указано в классе Pattern . @Monty Wild
Показать ещё 2 комментария
Теги:
string

2 ответа

1
Лучший ответ

Как насчет этого? Он использует отрицательный просмотр, чтобы убедиться, что в любое время он соответствует пробелу, за ним не следует пробел.

\w(\w| (?! )){2,10}\w

  • 0
    Идеальный ответ, содержит все необходимые мне атрибуты. Большое спасибо!
  • 0
    Я бы не использовал \w(?:\w|\s(?!)\s){2,10}\w для захвата группы, а также не смешивал бы метапоследовательности с литералами, так как это усложняло бы читать.
Показать ещё 1 комментарий
0

Вам понадобится регулярное выражение, подобное приведенному ниже:

[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]: заканчивается буквенно-цифровым символом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню