Java: Как определить, почему сопоставление с образцом регулярного выражения не удается?

Я использую регулярное выражение, чтобы найти соответствие шаблону, но я также хочу знать, когда он не работает.

Например, скажем, у меня есть шаблон "N {1,3 } Y ". Сопоставляю его со строкой «NNNNY». Я хотел бы знать, что это не удалось, потому что было слишком много N. Или, если я сопоставлю его со строкой «XNNY», я хотел бы знать, что это не удалось из-за недопустимого символа «X» в строке.

Из просмотра API пакета регулярных выражений Java (java.util.regex) , дополнительная информация кажется доступной из класса Matcher только после успешного совпадения.

Есть ли способ решить эту проблему? Или можно ли в этом сценарии использовать регулярное выражение?

10
задан Jin Kim 18 April 2011 в 19:51
поделиться