Я новичок в RegEx. Я пытаюсь удалить все пробелы и специальные символы между числами в строке. Пожалуйста, знайте, что строка может содержать другие символы с цифрами. Например, возьмем эту строку,
String s1 = "This is Sample AmericanExp Card Number 3400 1000 2000 009";
Я пытаюсь: -
String s1 = "This is Sample AmericanExp Card Number 3400 1000 2000 009";
String regExp = "[^\\w]+";
String replacement = "";
String changed= s1.replaceAll(regExp, replacement);
System..out.println("changed->"+content);
Его выдача выводится как ThisisSampleAmericanExpCardNumber340000000000009 , Требуется вывод «Это Образец карты AmericanExp № 340010002000009 ". Оцените Справку и, пожалуйста, дайте мне знать концепцию, стоящую за ней.
РЕДАКТИРОВАТЬ: - Теперь я маскирую номер карты и ее PIN-код (PCI), поэтому у меня есть эта формула
^((4\\d{3})|(5[1-5]\\d{2})|(6011))-?\\d{4}-?\\d{4}-?\\d{4}|3[4,7]\\d{13}$
Какие проверки для некоторых типов кредитных карт. Я изменяю его, чтобы проверить также его PIN-код и CVV (также соответствуют номерам 4 и 6 di git) Sample String = "Образец номера карты AmericanExp 3400 1000 2000 009 и PIN-код 1234, CVV = 654321"
Я изменил формулу следующим образом:
^((4\\d{3})|(5[1-5]\\d{2})|(6011))-?\\d{4}-?\\d{4}-?\\d{4}|3[47]\\d{13}$|^[0-9]{4}$|^[0-9]{6}$
Что не дает мне правильного вывода (также соответствует 4 и 6 числам di git).