Как я могу превратить это в регулярное выражение Java? - PullRequest
0 голосов
/ 26 апреля 2019

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

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

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

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

1 голос
/ 26 апреля 2019

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

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

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

enter image description here

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

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