Регулярное выражение для сопоставления цифр и основных математических операторов - PullRequest
8 голосов
/ 27 октября 2009

Мне нужно регулярное выражение, которое будет соответствовать 0 - 9, (, ), +, -, * и /.

Ответы [ 7 ]

12 голосов
/ 09 февраля 2015

Принятый ответ не может справиться с множеством основных случаев. Это должно сделать работу:

^([-+]? ?(\d+|\(\g<1>\))( ?[-+*\/] ?\g<1>)?)$

Explaination:

Мы хотим сопоставить всю строку:

^...$

Выражения могут иметь знак:

[-+]? ?

Выражение состоит из нескольких цифр или другого допустимого выражения, заключенного в квадратные скобки:

(\d+|\(\g<1>\))

За допустимым выражением может следовать операция и другое допустимое выражение, и оно все еще является действительным выражением:

( ?[-+*\/] ?\g<1>)?
8 голосов
/ 27 октября 2009

Похоже, вы пытаетесь сопоставить числовые выражения, такие как 5 + 7-3.

Это должно соответствовать им:

([-+]?[0-9]*\.?[0-9]+[\/\+\-\*])+([-+]?[0-9]*\.?[0-9]+)
5 голосов
/ 27 октября 2009
[\d\(\)\+\-\*\/\.]
5 голосов
/ 27 октября 2009

Я думаю, вы ищете классы персонажей

[0-9()+\-*/.]

Это должно соответствовать слову, которое содержит любое число от 0 до 9 или (,), +, -, / или *

2 голосов
/ 17 января 2017

Если вам нужно регулярное выражение для соответствия арифметическому выражению, подобному этому: 3 + 2-24 * 2 / 2-1, вы можете попробовать это:

String reg1="([0-9]+[\\+\\-\\*\\/]{1}[0-9]+)+([\\+\\-\\*\\/]{1}[0-9]+)*";

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

1 голос
/ 27 октября 2009
[0-9\(\)\+\-\*\./\"]
0 голосов
/ 01 октября 2017

Это регулярное выражение помогает мне, просто сделайте заметку, может, это поможет другим.

^[0-9+\-*\/\(\)]*$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...