Проблема с регулярным выражением с совпадением слов с первой заглавной буквой

Я должен быть честным, что регулярные выражения - это то, что я не могу понять, как бы я ни пытался... Как говорится, я здесь, любезно прошу вас о помощи. Мне нужно регулярное выражение, которое будет соответствовать чему-то вроде «C12.8 Zaaa Vbbb». Правила следующие:

  • В предложении может быть максимум 3 слова
  • Первые слова всегда должны быть в формате X11.1. ( [А-Я].[0-9][0-9].[0-9] )
  • Далее может быть 1 или 2 слова, но всегда начинаться с заглавных букв ВАЗГРЛБ. Эти слова не являются обязательными.

До сих пор у меня есть регулярное выражение для первой части: ^[A-Z][0-9]{2}[.]?((?<=[.])[0-9]{0,2}) . После этого я попробовал: ^[A-Z][0-9]{2}[.]?((?<=[.])[0-9]{0,2})+\s+[VAZGRLB]([VAZGRLB])?[a-z]+\s+[VAZGRLB]([VAZGRLB])?[a-z]+$. Проблема в том, что в предложении 2 слова являются обязательными и не будут соответствовать только первой части.

Примеры, которые соответствуют:

  • X11.2 Вааа Зббб
  • R22.3 Аааа Гббб
  • Д11.2
  • G33.2 Вххх

Спасибо большое!

Вероятно, лучше всего рассказать нам, какой инструмент вы используете для обработки регулярных выражений. Быстрый? сед? Раку?

High Performance Mark 10.04.2022 12:01
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
1
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете упростить регулярное выражение до этого: /^[A-Z][0-9][0-9]\.[0-9](?: [VAZGRLB][a-z]+){0,2}$/gm

Протестируйте здесь: https://regex101.com/r/nZSXf6/2

^                          matches the start of the string
[A-Z][0-9][0-9]\.[0-9]      matches the first word in format X11.1
(?: [VAZGRLB][a-z]+){0,2}  matches the next two words to a max of two words
$                          matches the end of the string

Другие вопросы по теме