Как редактировать электронную почту и телефонную информацию из текста? - PullRequest
1 голос
/ 15 июня 2011

Существует ли регулярное выражение для редактирования информации электронной почты и телефона из этого текста:

Hi John,
Please contact me at tom@email.com or 212-555-1212 or 313.555.1313.
Thank you.
Tom

чтобы получилось так:

Hi John,
Please contact me at [REDACTED] or [REDACTED] or [REDACTED].
Thank you.
Tom

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Использование 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
0 голосов
/ 15 июня 2011

java.util.regex.Matcher имеет метод replaceAll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...