J'ai un défi amusant pour lequel je n'ai pas trouvé de réponse ici. J'ai une chaîne de texte, qui pourrait contiennent potentiellement un numéro de compte. Exemple :
"Hi, my account number is 1234 5678 9012 2345 and I'm great."
Le numéro de compte peut prendre plusieurs formes, car il est saisi par l'utilisateur :
Possibilités de base et potentielles ci-dessous :
1234 1234 1234 1234
1234 1234 1234 1234 1
BE12 1234 1234 1234
1234-1234-1234-1234
1234.1234.1234.1234
1234123412341234
12341234 1234 1234
1234-1234-1234-1234-1
1234.1234.1234.1234.1
12341234123412341
12341 234 1234 12341
BE12-1234-1234-1234
be12-1234-1234 1234
Be12.1234.1234-1234
BE12123412341234
(essentiellement des nombres entiers avec un trait d'union, un espace ou un point au milieu, à l'exception du format IBAN, qui comporte deux caractères au début).
Ce dont j'ai besoin en sortie, c'est que tout soit masqué, sauf les quatre derniers chiffres.
"Hi, my account number is **** **** **** 2345 and I'm great."
Comment je pense que je devrais aborder ce problème :
- Analysez chaque chaîne et essayez de trouver les modèles de numéro de compte ci-dessus.
- Créer une expression régulière magique qui remplace le numéro de compte de la manière dont j'en ai besoin.
- S'il y a un numéro de compte, utilisez cette RegEx pour le faire.
Quelle serait votre approche ?
Merci !