簡體   English   中英

在java中使用正則表達式從恢復中獲取電子郵件ID

[英]Not getting email id from resume using regex in java

我正在研究一個簡歷解析器,試圖從簡歷中檢索值(名稱,電子郵件,移動等)並將它們保存在csv文件中。 雖然我能夠檢索電話號碼但無法檢索電子郵件ID。 我正在使用下面提到的代碼。

Pattern regex = Pattern.compile("[@]");
Matcher regexMatcher = regex.matcher(text);
int i = 0;
int width = 0;

while (regexMatcher.find()) {
    if ((regexMatcher.start() - 10 > 0)
            && (regexMatcher.end() + 10 < text.length())) {

        width = 10;
        String[] substr = text.substring(
            regexMatcher.start() - width,
            regexMatcher.end() + width
        ).split(" ");

        for (int j = 0; j < substr.length; j++) {
            if (substr[j].contains("@")
                && (substr[j].contains(".com")
                    || substr[j].contains("@")
                    && substr[j].contains(".co.in")
                    || substr[j].contains(".net"))) {

                System.out.println(substr[j]);
                email = substr[j];
            }
        }
    } else {
        System.out.println("NO MATCH");
    }
}

Pattern p = Pattern.compile("\\d\\d\\d([,\\s])?\\d\\d\\d\\d\\d\\d\\d");
Matcher found = p.matcher(text);

if (found.find()) {
    mobile = found.group();
    System.out.println(mobile);

} else {
    System.out.println("NO MATCH1");
}

您當前的方法似乎是找到包含at符號@字符串,然后以某種方式將其周圍出現的其余電子郵件地址拼湊在一起。 但這首先打敗了使用正則表達式的目的。 在下面的代碼段中,我使用以下正則表達式來標識電子郵件地址:

\\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\\b

這應該匹配大多數普通的英文電子郵件地 我從這里改編了它。

Pattern p = Pattern.compile("\\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\\b");
Matcher found = p.matcher(text);
while (found.find()) {
    System.out.println(found.group(0));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM