Нужна помощь относительно регулярных выражений

#regex

#регулярное выражение

Вопрос:

Мне нужно идентифицировать эти два набора шаблонов. Одним из них является

  • Случай 1: 2 буквы, затем необязательный пробел, а затем три цифры. Например: ‘A012’ или ‘A 014’

  • Случай 2: 1 буква, затем необязательный пробел, а затем три последовательных числа. Например: ‘AB012’ или ‘AB 014’

Я использовал аналогичный шаблон, но в некоторых случаях он не улавливает.

     const REGEX = /b([a-zA-Z] *[a-zA-Zd]{0,1} *[a-zA-Zd] *(.|,)? *d *(.|,)?[a-zA-Zd])b/g
  

Есть ли какие-либо предложения?
Не важно, соответствует ли соответствующая строка регистру 1 или регистру 2. Достаточно любого совпадения.

Комментарии:

1. Пожалуйста, приведите примеры случаев, которые должны совпадать, но не совпадают

2. Вы извлекаете данные или просто пытаетесь выяснить, является ли что-то случаем 1 или случаем 2?

3. Вы уверены, что хотите «последовательные» числа? Последовательные числа следуют друг за другом, такие как 123 или 678 . 014 не является последовательным, это всего лишь 3 цифры.

Ответ №1:

Как насчет этого?

 [a-zA-Z]{1,2} ?d{3}
  

Комментарии:

1. Вы действительно не должны использовать s для этого, поскольку OP упомянул конкретно пробел. Предположительно, новая строка должна завершиться ошибкой.

2. Спасибо. Ты сделал мой день.

3. Нет проблем, в целом вопрос полон дыр, и даже примеры примеров не перечислены в соответствующих пунктах.