Вы можете использовать это регулярное выражение,
^UC(?:T|F[LCA]?|PA?)\d{3}$
Regex Объяснение:
^UC
- начало строки с UC
(?:T|F[LCA]?|PA?)
- соответствует только T
ИЛИ только F
или F
, за которым следуют либо L
или C
или A
ИЛИ * P
или PA
\d{3}
- с тремя цифрами
$
- конец строки
Кроме того, чтобы помочь вам выяснить, почему ваше регулярное выражение (?i)uc([tpf]?)|(f[lca]?)|(PA)\d\d\d
не сработало, потому что вам нужно было сгруппировать три чередования в вашем регулярном выражении, как это (?i)uc(?:([tpf]?)|(f[lca]?)|(PA))\d\d\d
, но даже тогда это было несколько неправильное группирование, потому что тогда это разрешить UC123
, что не должно быть разрешено согласно вашим образцам. Правильное регулярное выражение, которое вам нужно использовать, дано в моем ответе.
Также обратите внимание, что я включил флаг нечувствительности к регистру в моей демонстрации, который вы можете легко сделать, поставив i
после последней косой черты, как в своем регулярном выражении или в строке, включив этот (?i)
непосредственно перед своим регулярным выражением, как вы уже сделали в своем регулярное выражение в вашем сообщении.
Regex Demo