Задать вопрос

Как правильно составить регулярное выражение в java?

Добрый день! Помогите составить регулярное выражение для поиска нужной буквы или нескольких букв используя String.matches();
ArrayList<String> list = new ArrayList<String>();
    list.add("роза"); //0
    list.add("лира"); //1
    list.add("лоза"); //2
for (int i = 0; i < list.size(); i++)
    {
        //удалять из списка строк все слова, содержащие букву «р»
        if (list.get(i).matches(".*р.*"))
        {
            list.remove(i);
        }
     }

вывод на экран
лира
лоза
ираз
Вопрос как правильно составить регулярку что был поиск по всем символам в строке?
Спасибо
  • Вопрос задан
  • 274 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    Java-разработчик + ИИ
    8 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Java-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
У вам ошибка в алгоритме перебора.

Каждый раз, как вы находите подходящий элемент, вы пропускаете следующий за ним без проверки.

Перебирайте тогда уж в обратном направлении. Или воспользуйтесь итератором - у него есть метод remove().

А проверять можно просто: matches("р")
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
А какой сейчас результат? На первый взгляд регулярка верная.

Что значит поиск по всем символам? Вам же одну букву нужно найти?

P.S. для поиска одной буквы или даже слова, менее затратно будет через поиск подстроки (index), чем регулярки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы