Duplicata possible:
Expression régulière pour correspondre à une chaîne ne contenant pas de mot?
Comment puis-je inverser une expression régulière en JavaScript?
Dis que j'ai le regex foo123
. Comment puis-je faire correspondre tout ce qui est pas foo123?
Utilisez l'anticipation négative pour cela.
(?!foo123).+
correspond à n'importe quelle chaîne sauf foo123
Si vous souhaitez également faire correspondre une chaîne vide, utilisez (?!foo123).*
Dans votre cas (selon le commentaire), l'expression régulière requise est (?!P[0-9]{1,}).+
.
Il correspond à P et 12, mais pas P12.