2010-11-13 3 views
0

Мне нужно регулярное выражение, которое заменило бы арифметические операторы в данной строке. Мне нужно заменить операторов на «|».Регулярное выражение для оценки и замены операторов арифметических операторов

, например,

String input = "5.0+9.0-(-2.0)"; 

String replace = input.replaceAll("[+-//*&&[^.]&&[^(-]]", "|"); 

в данном случае я намерен заменить только операторы за скобки. Я думаю, что регулярное выражение должно быть изменено больше, чтобы читать только «-» вне скобок, но я должен мыслить.

ответ

0

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

Для справки по извлечению Regular expression to detect semi-colon terminated C++ for & while loops может вам помочь.

+0

спасибо за советы, ребята ... я получил это работает – user506574

1

Если вы просто хотите заменить (и не оценивать) арифметические операторы, которые не находятся в скобках, вы можете попробовать:

String replace = input.replaceAll("[-+*/](?![^(]*\\))","|"); 

Ideone Link