Java 获取有关正则表达式验证的特定消息

Java 获取有关正则表达式验证的特定消息,java,android,regex,Java,Android,Regex,这是否可能获得关于正则表达式验证的特定消息 例如 我们的正则表达式是'[0-9]{1,5}',用户输入'123456',然后像'max characters extended' 如果用户输入'abcd',则应显示类似'invalid characters'的消息 有人知道吗 提前感谢。没有“自动”解决方案。但是,您可以保留几个正则表达式,并尝试将您的输入与这些正则表达式匹配,这些正则表达式每个正则表达式都保留错误消息。例如: Pattern correctInput = Pattern.comp

这是否可能获得关于正则表达式验证的特定消息

例如

我们的正则表达式是
'[0-9]{1,5}'
,用户输入
'123456'
,然后像
'max characters extended'
如果用户输入
'abcd'
,则应显示类似
'invalid characters'
的消息

有人知道吗

提前感谢。

没有“自动”解决方案。但是,您可以保留几个正则表达式,并尝试将您的输入与这些正则表达式匹配,这些正则表达式每个正则表达式都保留错误消息。例如:

Pattern correctInput = Pattern.compile("\\d{1,5}");
Pattern onlyDigits = Pattern.compile("^\\d*$");

if (!correctInput.matcher(input).find()) {
    return onlyDigits.matcher(input).find()) ? "wrong number of characters" : "invalid characters";
}

如果您使用的是php,可以执行以下操作:

if (!preg_match('/[0-9]{1,5}/', $agent)) {

    if(!preg_match('/^\d+/', $agent)) { //if not numbers
        echo 'invalid characters';
    } else {
        echo 'max characters';
    }

}

我从服务器获取正则表达式,因此我必须在客户端验证输入并显示一条信息性消息。感谢您的回复。。。可以拆分正则表达式吗??我是说
'[0-9]{1,5}'
[1-9]
'[0-9]{1,5}'
对不起,你的问题不清楚。你说“拆分正则表达式”是什么意思?创建两个独立的正则表达式?你可以创建任意多个正则表达式。您还可以将它们放置在输入映射中,其中pattern是一个键,error message是一个值,然后编写通用代码,尝试应用pattern,直到其中一个匹配并获得相应的错误消息。感谢您的回复。。但我正在寻找一个java解决方案。你的答案和@AlexR的一样。。