#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. Нет проблем, в целом вопрос полон дыр, и даже примеры примеров не перечислены в соответствующих пунктах.