Regex: цифры, за которыми следует только один символ - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь создать регулярное выражение, которое будет разрешать только цифры, за которыми следует только один символ после каждой цифры в текстовом поле

регулярное выражение, которое должно соответствовать - \ d * \ + {1}

Регулярное выражение в случае, если оно не соответствует - [^ \ d * \ +) {1}] заменит "" (удаляет все остальное)

final String regexFinalInteger = "\\d*\\+{1}";

    numberElements.textProperty().addListener((observable, oldValueE, newValueE) -> {
        if (!newValueE.matches(regexFinalInteger)) {
            numberElements.setText(newValueE.replaceAll("[^\\d*\\+){1}]", ""));
        }
    });

Я ожидаю вывод 122 + 1 + 3, но фактический вывод может быть 1 ++ 2 +++ 4 + 123 (несколько +)

1 Ответ

0 голосов
/ 28 марта 2019

Если я правильно понял, вы хотите заменить несколько + только на один.

Я полагаю, что это позволит включить то, что вы ищете:

String regex = "[+](?=[+])";

String text = "122+1+3";
assertEquals("122+1+3", text.replaceAll(regex, ""));

text = "1++2+++4+123";
assertEquals("1+2+4+123", text.replaceAll(regex, ""));

То естьмоя первая Java-программа, извините, если она кого-то оскорбляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...