Простое совпадение с шаблоном регулярного выражения

Я пытаюсь использовать регулярное выражение, но не могу найти правильный результат.

Pattern pattern = Pattern.compile(" - ");
Matcher matcher = pattern.matcher("test - test2");

Это должно дать мне "тест"

    while (matcher.find()) {
        String fichierPart1 = matcher.group(1);
    }

Я не могу получить результат с помощью этого кода. Спасибо за помощь

Ваш шаблон будет использоваться в методе .split. Просто используйте "test - test2".split(" - ")

Wiktor Stribiżew 02.11.2018 17:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
31
2

Ответы 2

Нет группы 1 - есть только одно совпадение, «-».

онлайн-тестер регулярных выражений упрощает понимание.

Если вы хотите пройти «тест», почему бы не сделать "test - test".split(" - ")? Это возвращает массив значений, разделенных - - test и test в вашем случае.

Ваш шаблон должен быть чем-то сложным: регулярные выражения - не лучший вариант для разделения текста.

Кроме того, регулярные выражения имеют собственный синтаксис, который необходимо проанализировать перед оценкой шаблона. Итак, это большая часть работы, которую ваше приложение бесполезно пытается выполнять.

Я предлагаю вам, согласно комментарию @Wiktor Stribiżew, использовать String.split(). Попробуйте вот что:

for (String part : "test - test2".split(" - ")) {
}

Другие вопросы по теме