我正在使用正则表达式来匹配模式是否匹配,但是我也想知道何时失败.
例如说,我有一个“N {1,3} Y”的模式.我匹配字符串“NNNNY”.我想知道它失败了,因为有太多的Ns.或者如果我将它与字符串“XNNY”进行匹配,我想知道它失败了,因为字符串中有一个无效的字符“X”.
从Java正则表达式程序包API(java.util.regex)看,当匹配成功时,附加信息似乎可以从Matcher类获得.
有办法解决这个问题吗?或者在这种情况下是正则表达式甚至是一个选项?
解决方法
我想你应该使用解析器,而不是简单的正则表达式.
正则表达式是很好的提供字符串的匹配,但不是提供非匹配,更不用说解释为什么一个匹配失败.