Member 14994674 Ответов: 1

Как написать код, который извлекает адрес электронной почты из текстового файла


Напишите программу, которая сканирует текстовый файл на предмет возможных адресов электронной почты и записывает все адреса электронной почты в выходной файл.

Адреса выглядят примерно так:

someone@somewhere.net


Что я уже пробовал:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class EmailidExtration {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
 
        Pattern pattern = Pattern.compile("([a-z0-9_.-]+)@([a-z0-9_.-]+[a-z])");
        Matcher matcher = pattern.matcher("emailtext.txt");
 
        while(matcher.find()){
            System.out.println(matcher.group());
        }
    }
}

Patrice T

В чем проблема с этим кодом ?

Member 14994674

он ничего не выводит...он работает, но не возвращают вещь

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

1 Ответов

Рейтинг:
8

OriginalGriff

Ваш код ничего не находит, потому что ваш сопоставитель работает с именем файла, а не с содержимым файла:

Matcher matcher = pattern.matcher("emailtext.txt");
Прочитайте файл и передайте содержимое в сопоставитель вместо имени файла.

И лучшее регулярное выражение электронной почты-это:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})