2015-10-08 15 views
7

Ho una stringa di input che si presenta come una delle seguenti:Java Regex per mascherare stringa alfanumerica e spettacolo ultime 4 cifre

  • Z43524429
  • 46D92S429
  • 3488DFJ33

Fondamentalmente la la stringa può contenere caratteri alfabetici o cifre. Tuttavia non può contenere simboli, solo lettere e numeri. Vorrei mascherare in modo che assomiglia a questo:

  • ***** 4429
  • ***** S429
  • ***** FJ33

I Ho cercato ovunque per trovare un esempio di codice java che utilizza regex per mascherarlo. Ho trovato lo stack this post ma ciò presuppone che l'input sia puramente un numero.

Ho regolato la regex su /\w(?=\w{4})/g per includere anche i caratteri. Sembra funzionare here. Ma quando provo a implementarlo in java non funziona. Ecco la riga nel mio codice java:

String mask = accountNumber.replace("\\w(?=\\w{4})", "*"); 

La maschera finisce per essere uguale al numero di conto. Quindi ovviamente la regex non funziona. qualche idea?

+6

Utilizzare 'replaceAll' per regex – Reimeus

+0

Se la stringa ha sempre lo stesso formato, non è necessaria un'espressione regolare. Costruisci una nuova stringa che inizia con cinque '*' e termina con i quattro ultimi caratteri della stringa originale. –

+0

Grazie per la domanda BTW. Per questo motivo ho trovato Regex per il mascheramento delle stringhe. Molto utile.. – Jigar

risposta

5

Si sta utilizzando replace, che non utilizza espressioni regolari.

Prova replaceAll.