Использование String.replaceAll()
. Вы можете использовать это регулярное выражение для сопоставления адресов электронной почты:
[^@\s]+@[^@\s]+\.[a-zA-Z]{2,}
А этот для телефонных номеров:
\d{3}[-.]\d{3}[-.]\d{4}
Может поддерживаться большее разнообразие форматов телефонных номеров, но я рассмотрел только примеры из вашего вопроса.
Вот небольшая тестовая программа, чтобы доказать вышеупомянутые работы:
public class Redacted {
public static void main(String[] args) {
String text = "Hi John,\n"
+ "Please contact me at tom@email.com or 212-555-1212 or 313.555.1313.\n"
+ "Thank you.\n"
+ "Tom";
System.out.println("Before:\n" + text + "\n");
// replace email addresses
text = text.replaceAll("[^@\\s]+@[^@\\s]+\\.[a-zA-Z]{2,}", "[REDACTED]");
// replace phone numbers
text = text.replaceAll("\\d{3}[-.]\\d{3}[-.]\\d{4}", "[REDACTED]");
System.out.println("After:\n" + text + "\n");
}
}
Вышеуказанные программные выходы:
Before:
Hi John,
Please contact me at tom@email.com or 212-555-1212 or 313.555.1313.
Thank you.
Tom
After:
Hi John,
Please contact me at [REDACTED] or [REDACTED] or [REDACTED].
Thank you.
Tom