Как я могу превратить это в регулярное выражение Java?

Я использовал regex101 для создания своего выражения, и это выглядит так, используя их символы

\d+ [+-/*] \d*

По сути, я хочу, чтобы пользователь вводил как 123 + 123, но весь оператор представляет собой одну строку с ровно одним пробелом после первого числа и одним пробелом после оператора.

Приведенное выше выражение работает, но оно не преобразует его в Java.

Я думал, что эти символы универсальны, но, похоже, нет. Любые идеи, как преобразовать это в правильный синтаксис?

\\d+ [+-\/*] \\d* \ нужно экранировать в java...
brso05 26.04.2019 20:28
"123 + 123".matches("^\\d+ [+-\/*] \\d*$") правда. Похоже, ваш класс персонажа должен быть [-+/*], чтобы - не интерпретировался как диапазон, но кроме этого, в чем конкретно заключается проблема, которую вы видите? Можете ли вы добавить код и примеры данных или ошибок?
that other guy 26.04.2019 20:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Регулярные выражения не универсальны. В основном, нет двух одинаковых систем регулярных выражений.

В Java нет регулярных выражений. Некоторые классы Java поддерживают регулярные выражения. Класс Шаблон определяет регулярные выражения, которые используются некоторыми классами Java, включая Matcher, который, вероятно, является классом, который вы используете.

Как уже было указано в комментариях, \ — это символ перехода к следующему символу в Java. Если вы хотите представить \ в строке, вы должны использовать \\. Например, \d в регулярном выражении должно быть записано \\d в строке Java.

Вы можете просто использовать группы () и создать регулярное выражение по своему усмотрению. Это регулярное выражение может быть одним из способов сделать это:

((\d+\s)(\+|\-)(\s\d+))

Он имеет четыре группы, и вы можете просто вызвать весь ввод с помощью $1:

Вы также можете избежать \ тех обязательных языковых символы.

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