java matcher正则表达式不起作用

时间:2018-04-05 20:54:51

标签: java pattern-matching

这似乎是一个简单的问题,但我真的无法理解为什么它不起作用。 如何从文本中获取带有Java的电子邮件的典型示例,我希望代码输出找到的电子邮件,但我没有输出,请参阅代码摘录:

package regex;
import java.util.regex.*;

public class EsempioPatternMatcher {

    public static void main(String[] args) {

String emails = "info@mariorossi.it))"+
        "adfdagfgaafgValidator(\"paolo.pa@paolorossi.it\"));"+
        "rintlnx.rerewqwrwe\"mario@bianchi.it\"));";


        String regex = "([a-zA-Z0-9.-_]+@+[a-zA-Z0-9.-]+\\.[a-zA-Z] {2,})";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(emails);

        while (m.find())
        System.out.println(m.group());

        }
    }

我认为这是regex但事实上,即使我很容易做到,我也不会输出任何东西。似乎m.find()与任何东西都不匹配。 我看过其他例子,这似乎是处理这种情况的常用代码......我做错了什么?

谢谢! ë

1 个答案:

答案 0 :(得分:0)

试试这个,它适用于我的机器。

import java.util.regex.*;

public class EsempioPatternMatcher {

    public static void main(String[] args) {

String emails = "info@mariorossi.it))"+
        "adfdagfgaafgValidator(\"paolo.pa@paolorossi.it\"));"+
        "rintlnx.rerewqwrwe\"mario@bianchi.it\"));";

        Matcher m = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+").matcher(emails);

        while (m.find( ))
        System.out.println(m.group());

        }
    }

希望这有帮助!

此致 Eby J