Как включить определенный символ в шаблон регулярного выражения? - PullRequest
0 голосов
/ 20 апреля 2019

Мне нужна небольшая помощь.Я впервые использую регулярное выражение.

Итак, я хочу убедиться, что пользователь может ввести только число и два других символа - точку . и запятую ,.

Всякий раз, когда пользователь вводит число с такой буквой, как эта 100A1, он выводит «Неверный вывод», что здорово, и это то, что я хочу.Однако, если пользователь вводит 12.10 или 10,000 или 10,000.50, программа также выводит «Неверный вывод».

Я неправильно понимаю синтаксис Pattern.matches ().Буду признателен, если вы поможете мне.Спасибо.

if (!Pattern.matches("[0-9]+", stringUserInput)) {
    System.out.println("Wrong input");
}

1 Ответ

0 голосов
/ 20 апреля 2019

Это регулярное выражение должно работать:

\b[0-9,.]+\b


Где:

\b - Граница слова

[...]+ -Соответствует любому символу в квадратных скобках 1 или более раз

0-9 - цифры от 0 до 9

, - запятая

. - точка


Когда я начал изучать регулярные выражения, я использовал https://regexr.com/ для экспериментов.Он имеет полезную функцию, которая объясняет, что делает ваше выражение regex.

Надеюсь, это поможет!

Редактировать: Если вы пишете на Java, вам, вероятно, потребуется экранировать символ обратной косой черты,Таким образом, конечный результат должен быть: \\b[0-9,.]+\\b.

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