Hallo Team,
ich habe z.B. einen Eintrag:
relationId=132779254|propertyId=1218|groupId=2|value=8957
Bei bestimmten propertyIds will ich per inline Mappingset eine Ersetzung auf “ja” vornehmen, um diese Sätze in einem anschließenden Filter loszuwerden. Natürlich kann ich hier auch anders rangehen, aber der für mich intuitive Ansatz wäre, die MS-Regel nach Regex aufzubauen:
Da erhalte ich aber:
Wo soll denn da eine Gruppe nicht geschlossen sein?
UPDATE Jetzt verstehe ich es glaube ich; das in meinem String vorkommende “=” wird hier schon als Ersetzungsanweisung verstanden, so daß die Logik eine schließende Klammer hinter dem \ erwartet. Hmm. Aber ich habe mein = doch maskiert? Wie kann das Gewünschte erreicht werden?
Okay, das klappt. Aber es gibt ja nun einige Zeichen, die man in Regex maskieren muß. Ich teste mal, ob es mit denen ohne Hex-Code klappt - sonst müßte man die ja alle im Kopf haben. Wenn man sie immer erstmal raussuchen muß, ist man mit list-Anweisungen wahrscheinlich schneller…
das Problem sollte eigentlich nur bei = auftreten, alle anderen Zeichen kannst du wie gewohnt mit \ in deiner regex escapen. Das Problem liegt darin, das die MappingSets beim ersten = in Key(die regex) und value (der Wert für die Ersetzung) aufgeteilt werden.