Android 英语和阿拉伯语字符的电子邮件验证

Android email validation for english and arabic characters

我目前正在使用此正则表达式模式来验证电子邮件地址:

android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches();

它不适用于阿拉伯字符。我需要它同时处理英语和阿拉伯语字符。

这是我在项目中为 android (OS) 合并的正则表达式模式:

    public static final Pattern EMAIL_ADDRESS
    = Pattern.compile(
        "[a-zA-Z0-9\+\.\_\%\-\+]{1,256}" +
        "\@" +
        "[a-zA-Z0-9][a-zA-Z0-9\-]{0,64}" +
        "(" +
            "\." +
            "[a-zA-Z0-9][a-zA-Z0-9\-]{0,25}" +
        ")+"
    );

我不是正则表达式专家。我需要一些帮助来弄清楚如何同时支持这两者。

这可能不是最佳答案,但我可以通过添加阿拉伯字符使其工作:

[\u0621-\u064A\u0660-\u0669a-zA-Z0-9\+\.\_\%\-\+]{1,256}\@[\u0621-\u064A\u0660-\u0669a-zA-Z0-9][\u0621-\u064A\u0660-\u0669a-zA-Z0-9\-]{0,64}(\.[\u0621-\u064A\u0660-\u0669a-zA-Z0-9][\u0621-\u064A\u0660-\u0669a-zA-Z0-9\-]{0,25})+

Here's an example on regexr! (it doesn't display Arabic selection properly, but it is selected)