Java:如何确定正则表达式模式匹配失败的原因?

Jin*_*Kim 10 java regex

我正在使用正则表达式来匹配模式是否匹配,但我也想知道它何时失败.

例如,假设我有一个"N {1,3} Y"的模式.我将它与字符串"NNNNY"匹配.我想知道它失败了因为Ns太多了.或者,如果我将它与字符串"XNNY"匹配,我想知道它失败了,因为字符串中包含无效字符"X".

通过查看Java正则表达式包API(java.util.regex),匹配成功时,似乎只能从Matcher类中获取其他信息.

有没有办法解决这个问题?或者是正则表达式甚至在这种情况下的选项?

Pau*_*tos 9

我想你应该使用解析器,而不是简单的正则表达式.

正则表达式可以很好地为字符串提供匹配,但在提供非匹配时并不是这样,更不用说解释匹配失败的原因了.