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?
Użyj 'replaceAll' dla regex – Reimeus
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. –
Dzięki za pytanie BTW. Z tego powodu znalazłem Regexa do maskowania String. Bardzo pomocne.. – Jigar