Inline Mappingset mit Regex funktioniert nicht

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:
image

Da erhalte ich aber:
image

Wo soll denn da eine Gruppe nicht geschlossen sein?

In Notepad++ funktioniert es wie zu erwarten:

Was ist hier falsch?

Gruß, Micha
podcomm e-commerce management

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?

Hallo Micha,

du kannst in Regex auch mit Hex-Codes arbeiten. Versuch’s mal mit \x3D statt dem Gleichheitszeichen in deiner Regex:

Gruß
Gustav

1 „Gefällt mir“

Falscher Account mal wieder…

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…

Trotzdem, coole Idee!

Gruß Micha

Hallo Micha,

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.

VG Torsten