Вы можете использовать это регулярное выражение:
^([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
, используйте форму, которую вы предпочитаете.