Регулярное выражение для строки фиксированной длины, начиная с нескольких слов различной длины - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь создать регулярное выражение, соответствующее строке, длина которой ровно 10 символов , и должна начинаться с "ESZ", "XXZ", "H" или "A2 / 10",Я пробовал что-то вроде этого, но я не могу указать общую длину строки из-за изменения длины в начальных словах:

      ^(ESZ|XXZ|H|A2/10).{5,9}$

Как в этом случае указать общую длину строки в '10'?

1 Ответ

2 голосов
/ 08 октября 2019

Поскольку альтернатив слишком мало, почему бы не указать их все с помощью ^(ESZ.{7}|XXZ.{7}|H.{9}|A2\/10.{5})$?

https://regex101.com/r/5BwTWP/1

РЕДАКТИРОВАТЬ:

Этов качестве альтернативы может быть достигнуто с помощью: (?=.{10}$)(ESZ|XXZ|H1|A2\/10)

https://regex101.com/r/5BwTWP/3

Это регулярное выражение сначала заглядывает в будущее, чтобы убедиться, что в строке 10 символов. Что-то вроде проверки на string.length === 10 перед сопоставлением с регулярным выражением также должно быть выполнено.

Я все еще думаю, что самый первый подход - самый простой и эффективный.

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