У меня есть следующий запрос:Oracle REGEXP_SUBSTR не работает с моим рисунком
SELECT DISTINCT A.REZ FROM
(
SELECT REGEXP_SUBSTR(P_EQUATION, '([A-Z|a-z|0-9]+)\{([0-9|\+|\-| |\*|\/\)\(]+)\}#([A-Z|a-z|0-9|_]+)#',1, LEVEL) AS REZ FROM DUAL
CONNECT BY REGEXP_SUBSTR(P_EQUATION, '([A-Z|a-z|0-9]+)\{([0-9|\+|\-| |\*|\/\)\(]+)\}#([A-Z|a-z|0-9|_]+)#',1, LEVEL) IS NOT NULL
) A;
Если я снабжал следующий вход:
P_EQUATION := 'A123{(01+02)*2}#ACCOUNT_BALANCE# + B123{(20+10)/20}#ACCOUNT_BALANCE#';
Это дает мне следующее:
REZ
-------------------------------------
A123{(01+02)*2}#ACCOUNT_BALANCE#
B123{(20+10)/20}#ACCOUNT_BALANCE#
Но, хотя знак «минус» включен в шаблон, если я добавил его внутри фигурных скобок, он не распознает текст и ymore как матч!
например:
P_EQUATION := 'A123{(01-02)*2}#ACCOUNT_BALANCE#';
Я не смог найти решение этой проблемы, он бесконтрольного меня, особенно, когда я пытался соответствовать один только минус это работает, если я пытался соответствовать цифры сами по себе также работает :(
оставьте в стороне все, что вы используете '|' в классе символов? '[A-Za-z0-9] +' один будет работать нормально – rock321987
Не знаю, не вызовет ли проблемы? – simsim
будет соответствовать '' 'буквально, если он есть в строке – rock321987