2014-09-25 2 views
-1

Есть следующее регулярное выражение /+|-^[(-], которое я использую в методе String.split (regex).Калькулятор разбора пользовательского ввода с использованием regex

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

Правильный пример: toDollar(-45euro)-$30 ----> { toDollar(-45euro) , $30 }.

Так что мое регулярное выражение не следует этому правилу, как его изменить?

+0

http://regex101.com/r/lS5tT3/33 это действительный вход? – vks

ответ

2

Вы ищете отрицательный просмотра назад:

\\+|(?<!\\()- 

(?<!...) является lookbehind и означает "не предшествует ..."

+0

@Mark http://regex101.com/r/lS5tT3/33 – vks

Смежные вопросы