2015-10-08 10 views
7

Mam ciąg wejściowy, który wygląda jak każdy z poniższym:Java Regex zamaskować ciąg alfanumeryczny i pokazać ostatnie 4 cyfry

  • Z43524429
  • 46D92S429
  • 3488DFJ33

Zasadniczo ciąg może zawierać znaki alfabetu lub cyfry. Jednak nie może zawierać symboli, tylko litery i cyfry. Chciałbym, żeby go zamaskować tak, że wygląda tak:

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

I Szukałem wszędzie, aby znaleźć przykład kodu java, który używa wyrażenia regularnego do zamaskowania tego. Znalazłem this post na stosie, ale zakłada, że ​​dane wejściowe są czysto liczbowe.

Dostosowałem wyrażenie regularne do /\w(?=\w{4})/g, aby uwzględnić również znaki. Wydaje się działać here. Ale kiedy próbuję go zaimplementować w Javie, to nie działa. Oto linia w moim kodzie java:

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

Maska kończy się tak jak numer konta. Tak więc oczywiście regex nie działa. jakieś pomysły?

+6

Użyj 'replaceAll' dla regex – Reimeus

+0

Jeśli ciąg ma zawsze ten sam format, nie potrzebujesz wyrażeń regularnych. Zbuduj nowy ciąg zaczynający się od pięciu '*' i kończący się czterema ostatnimi znakami oryginalnego łańcucha. –

+0

Dzięki za pytanie BTW. Z tego powodu znalazłem Regexa do maskowania String. Bardzo pomocne.. – Jigar

Odpowiedz

Powiązane problemy