Ich habe die folgende Abfrage:Oracle REGEXP_SUBSTR arbeitet nicht mit meinem Muster
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;
Wenn ich die folgende Eingabe geliefert:
P_EQUATION := 'A123{(01+02)*2}#ACCOUNT_BALANCE# + B123{(20+10)/20}#ACCOUNT_BALANCE#';
Es gibt mir folgende:
REZ
-------------------------------------
A123{(01+02)*2}#ACCOUNT_BALANCE#
B123{(20+10)/20}#ACCOUNT_BALANCE#
Aber obwohl das Minuszeichen im Muster enthalten ist, wird es, wenn ich es innerhalb der geschweiften Klammern hinzugefügt habe, den Text nicht erkennen ymore als ein Spiel!
ex:
P_EQUATION := 'A123{(01-02)*2}#ACCOUNT_BALANCE#';
Ich bin nicht in der Lage, eine Lösung für diese zu finden, die es mich ist freaking, vor allem, als ich versuchte, allein auf das Minuszeichen entsprechen es funktioniert, wenn ich versuche, entsprechen Ziffern allein es funktioniert auch :(
lass alles beiseite ... Warum benutzt du '|' in der Zeichenklasse? '[A-Za-z0-9] +' allein wird gut funktionieren – rock321987
Ich weiß nicht, Würde es ein Problem verursachen? – simsim
es passt '|' buchstäblich, wenn es dort in einer Schnur ist – rock321987