У меня есть странная проблема с регулярным выражением в Java. Я тестировал свое Regex и свою ценность здесь, и он работает. В нем указано, что существует 3 группы (правильно), совпадение для первой группы (но не нулевой группы!) - это SSS, совпадение для группы 2 - BB, а для группы 3 - 0000. Но мой код ниже терпит неудачу, и я вполне уверен потеря, почему...
String pattern = "([^-]*)-([\\D]*)([\\d]*)";
String value = "SSS-BB0000";
Matcher matcher = Pattern.compile(pattern).matcher(value);
//group() is equivalent to group(0) - it fails to match though
matcher.group();
Вот скриншот из результата совпадения с приведенным выше сайтом:
Я был бы очень благодарен, если бы кто-нибудь мог указать на ошибку, которую я делаю... Дополнительное примечание: Как ни странно, если я выполню следующий код true, возвращается, что подразумевает, что совпадение должно быть возможным...
//returns true
Pattern.matches(pattern, value);