У меня есть вопрос о неохотной стратегии извлечения по регулярным выражениям.Pattern datePattern = Pattern.compile("(.*?)(\\d\\d\\d\\d-\\d\\d-\\d\\d)(.*)");
Matcher matcher = datePattern.matcher("2017-03-16");
if(matcher.find()){
System.out.println("Matched");
String extractedDate = matcher.group(1);
System.out.println("Extracted date: " + extractedDate);
}
< /code>
Я получаю этот вывод: < /p>
Matched
Extracted date:
< /code>
Итак, matcher.group (1) просто извлекает пустую строку. Кажется, я не понимаю, как действительно работает стратегия неохотной. Я подумал, что первая определенная группа в шаблоне: < /p>
(.*? Другими словами, когда это может сопоставить что-то со второй группой: < /p>
(\ d \ d \ d \ d- \ d \ d- \ d \ d) < /p>
Затем это будет соответствовать этой группе и потреблять первую группу с «Ничего». < /P>
trade не должен иметь эффект «Br /b /> . />
может кто-нибудь объяснить мне, почему в данном примере я не получаю ожидаемую строку "2017-03-16" от matchter.group (1)? < /p>
Спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/428 ... rn-matcher
Регулярное выражение неправильно извлекает (Java Pattern / Matcher) [Duplicate] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Извлеките строковый компонент в хранение в виде ключа хэш -карты в функции, Matcher Matcher?
Anonymous » » в форуме JAVA - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-