Pattern.compile("world[ ,.!?]")
Почему валидатор принимает вот такое слово magicworld и одобряет выделение world, но при этом не принимает вот такое слово "worldwide"... При этом я понимаю валидатора, что он хочет как в любом текстовом редакторе Ctrl+F => вводишь слово или часть слова и он находит в любом словосочетании, а не только как указано в запросе.
Заранее спасибо.
Алексей
20 уровень
Почему валидатор принял это решение????
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
2 сентября 2019, 13:00
Полный код решения
0
Pavlo Plynko Java-разработчик в CodeGym Expert
2 сентября 2019, 14:28
Да, решение не правильное, но прошло из-за бага в валидаторе: оно не нашло несколько слов, но нашло ровно такое же кол-во лишних слов :)
Спасибо, поправим.
0
Алексей
4 сентября 2019, 08:27
а можно когда поправите сбросить мой результат и вновь открыть эту задачу, ведь фактически я ее не решил и "урок не усвоен"?
0
Pavlo Plynko Java-разработчик в CodeGym Expert
4 сентября 2019, 13:10
К сожалению, сбросить результат не могу. Но в этой лекции было 5 задач на данную тему, думаю все усвоится :)
0
WantToSleep
2 сентября 2019, 09:27
Чуваки, серьезно, астанавитесьп
0
Алексей
2 сентября 2019, 13:09
?
0
hidden #598481
2 сентября 2019, 07:46
Это неправильное решение, т.к. требует обязательного символа после слова world и не примет слова world в конце строки/файла. Так же оно не проверяет, что слово world является всем словом, а не его частью. Не должно было принять.
Правильным решением было бы обрамить слово world символами границы слова \b.
Сайт работает правильно, но там нет языка Java.
Что касается того, что действительно требуется, то по условию задачи слова разделяются знаками пунктуации, и надо искать слово "world", а не просто вхождение подстроки. При этом, разумеется, слова не могут включать в себя всякие whitespace символы (пробелы, переносы и тд).
А проверить валидность регулярного выражения можно прямо в идее:
1) встаем между кавычек, alt+enter -> inject language
2) выбираем в списке RegExp
В строке сразу включится подсветка метасимволов
3) снова alt+enter -> check regexp. в отличие от сайта он не будет искать все вхождения, а вместо этого проверит на соответствие регулярному выражению всей строки полностью.
0
Алексей
2 сентября 2019, 09:10
ну я как бы об этом и задаю вопрос, я изначально делал отдельное слово world без всяких исключений, максимум запятая, точка и т.д. после этого слова. Но никак не ожидал, что частью решения будет составное и в определенных условиях.
Задачу мне засчитали, но у меня фактически неверное решение, об этом я и спрашиваю, что не так с валидатором.
за подсказку с inject пасиб, не знал
upd: ну или со мной)))
0
hidden #598481
2 сентября 2019, 09:24
Если действительно засчитывается, то косяк тестов. Сам не могу ни подтвердить, ни опровергнуть. В разделе сообщений есть диалог с админами JR, можно им ссылку на этот вопрос скинуть.
0
Алексей
2 сентября 2019, 07:28
как вариант я могу предположить, что этот сайт не правильно работает... но раньше не подводил.
https://regex101.com/
0