Regex для буквенно-цифровых и одиночных пробелов - PullRequest
0 голосов
/ 11 марта 2019

Как разрешить один пробел между буквенно-цифровыми словами?

Я использовал регулярное выражение от "^(?![0-9]*$)[a-zA-Z0-9]+$" до

  1. Запрещать числа в начале
  2. Разрешить алфавиты и цифры после одного или нескольких букв алфавита

Пример:

Разрешить

  • Google,
  • Car 401, В настоящее время не разрешено!
  • Car401

Disallow

  • 012 Avenue,
  • Central Park,
  • 34134

Тест: https://regex101.com/r/StK21o/2/

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вы можете использовать это регулярное выражение, которое использует отрицательный взгляд вперед, чтобы отбросить строку, которая начинается с цифры, и в противном случае захватывает текст, который может быть разделен только одним пробелом,

^(?!\d)[a-zA-Z\d]+(?: [a-zA-Z\d]+)*$

Объяснение регулярного выражения:

  • ^ - начало строки
  • (?!\d) - отклоняет совпадение, если строка начинается с числа
  • [a-zA-Z\d]+ - Захватывает один или несколько буквенно-цифровых символов
  • (?: [a-zA-Z\d]+)* - дополнительно фиксирует ноль или более буквенно-цифровых символов, разделенных одним пробелом
  • $ - конец строки

Демо

0 голосов
/ 11 марта 2019

Это выражение должно делать.

^[a-zA-Z][a-zA-Z0-9]*(?:\ [a-zA-Z0-9]+)?$

Правила

  1. Первый символ должен начинаться с алфавита
  2. Буквенно-цифровые символы допускаются начиная со 2-го символа
  3. 1 необязательный пробел в строке (не заканчивается и не начинается с пробела)

Выражение объяснения

  • ^ обозначает начало строки
  • [a-zA-Z] соответствует алфавиту
  • [a-zA-Z0-9] соответствует нулю или более буквенно-цифровых символов
  • (?:\ [a-zA-Z0-9]+)? допускает необязательную группу строк, которая начинается с пробела, за которым следует по крайней мере 1 буквенно-цифровой символ
  • $ обозначает конец строки

https://regex101.com/r/3IHN6j/4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...