Java номерной знак автомобиля с регулярным выражением - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу сделать регулярное выражение для номерных знаков в моей стране:

Шаблон, например:

[L {L}] [NN {N}] [LLL]

Дополнительные примеры:

BH 23 MAS

AG 33 TRA

Когда у нас здесь две буквы [L {L}], у нас не может быть трех чисел в среднее, только два

Когда у нас есть только буква здесь [L {L}], у нас может быть только 'B', и мы можем иметь два или три числа в середине:

B 12 ERT

B 123 ERT

И в конце для каждого случая: с одной или двумя буквами в начале мы не можем иметь «I» или «O» на первой или последней позиции в [LLL] из последнего выражения. (B 123 OST - ложь, «O» - первая, а здесь B C 12 SEI - ложь, потому что «I» находится в последней позиции)

Any идеи, как будет выглядеть регулярное выражение для этого?

1 Ответ

0 голосов
/ 16 апреля 2020

[L {L}] [NN {N}] [LLL]

Когда у нас здесь две буквы [L {L}], у нас не может быть трех чисел в середине, только два

[A-Z]{2}[0-9]{2}

Когда у нас есть только буква здесь [L {L}], у нас может быть только «B», и мы можем иметь два или три числа в середине:

B[0-9]{2,3}

У нас не может быть 'I' или 'O' на первой или последней позиции в [LLL]

[A-HJ-NP-Z][A-Z][A-HJ-NP-Z]

Объедините их, используя ^(?:A|B)C$ и допуская 1 пробел между деталями

^(?:B ?[0-9]{2,3}|[A-Z]{2} ?[0-9]{2}) ?[A-HJ-NP-Z][A-Z][A-HJ-NP-Z]$

См. regex101.com для демонстрации.

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