При попытке сопоставления "??M?E???"
с рисунком "^([\\?]+)M([\\?]+)E([\\?]+)$"
, я получаю «Нет совпадения», хотя он работает для "?M?E??"
в порядке.Java Regex Question Mark
Мой фрагмент кода
Pattern p = Pattern.compile("^([?]+)[M]{1}([?]+)[E]{1}([?]+)$");
Matcher m = p.matcher(input);
if (!m.find()) {
System.out.println("No Match");
continue ;
}
x = m.group(1).length();
y = m.group(2).length();
z = m.group(3).length();
Я попробовал код размещен после редактирования и она отлично работает. Производит '2, 1, 3' для' ?? M? E ??? 'и' 1, 1, 2' за '? M? E ??'. Вы должны делать что-то еще не так, в коде, который вы не публиковали, или ваш вход на самом деле отличается от того, что вы говорите. – Jesper