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

Я пытаюсь найти подходящее выражение регулярного выражения, соответствующее приведенному ниже шаблону. Не могли бы вы помочь мне.

S1234567A

1234567A

1234567 A

S 1 2 3 4 5 6 7 A

S- 1-2-3-4-5-6-7-A

S 1234567 A

S 1234567A

образец может начинаться с G / T / S. число в середине может быть случайным, но будет содержать 7 di git, а последний алфавит также случайный, только с 1 алфавитом.

Спасибо.

1 Ответ

3 голосов
/ 02 марта 2020

Вы можете использовать это регулярное выражение:

^([GTS]{0,1}[ ]{0,1}[0-9]{7}[ ]{0,1}[A-Z])|(([GTS]{0,1}-([0-9]-){7}[A-Z]))|(([GTS]{0,1} ([0-9] ){7}[A-Z]))$

Первая часть:

([GTS]{0,1}[ ]{0,1}[0-9]{7}[ ]{0,1}[A-Z])

Соответствует следующему:

S1234567A
9136013A
7102938 A
S 0849376 A
S 5840201A

Вторая часть:

(([GTS]{0,1}-([0-9]-){7}[A-Z]))

Для -:

S-1-2-3-4-5-6-7-A

И третьей части:

(([GTS]{0,1} ([0-9] ){7}[A-Z]))

Для пробелов:

S 1 2 3 4 5 6 7 A

Как кажется, что некоторые другие их комбинации, такие как: S 1 2 3-4-5-6-7-A не должны совпадать.

В противном случае вы можете упростить его до:

^([GTS]{0,1}[ ]{0,1}[0-9]{7}[ ]{0,1}[A-Z])|(([GTS]{0,1}[- ]([0-9][- ]){7}[A-Z]))$

Но только если все нормально, строки типа S 1 2 3-4-5-6-7-A матч.

И обратите внимание, все это [0-9] можно заменить на \d, используйте форму, которую вы предпочитаете.

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