Я не знаю, на каком языке вы говорите, но есть одна очевидная проблема с вашим регулярным выражением: якоря ^
и $
требуют, чтобы он соответствовал всей строке, и вы, кажется, планируете соответствующие отдельные записи в вашем файле CSV.
Следовательно, вы должны использовать привязки границ слов, если ваш движок регулярных выражений поддерживает их:
\b(?:([BPXT][0-9]{6})|([a-zA-Z]{2}[0-9]{2}(adm)?))\b
Я также добавил еще одну группу без захвата вокруг чередования. В вашем регулярном выражении якоря в начале и конце строки были бы частью чередования, которое, вероятно, не предназначено. Нужны ли вам все остальные скобки, зависит от того, что вы собираетесь делать со спичкой.