Rouven: Regular Expression im String maskieren

Beitrag lesen

Hello,

ich kämpfe gerade mit Regular Expressions in Java. Ausgangsszenario: Ich habe einen String, der beliebige Zeichen enthalten kann und der an bestimmten Stellen mit Keywords gespickt ist. Beispiel:
<?sometext ."und Sonderzeichen(Bla)? @@KEYWORD@@?>
Ziel:
(1) ein String, in dem alles was NICHT Keyword ist maskiert ist
(2) der String aus (1), wobei das Keyword durch eine regular Expression ersetzt ist.
Beispiel (@@KEYWORD@@ wird \w*):
<?sometext ."und Sonderzeichen(Bla)? \w*?>

Java bietet mir per Pattern.quote(String) an einen String zu maskieren - hierbei wird allerdings nicht jedes Sonderzeichen maskiert, sondern der gesamte String gequotet - im Beispiel:
\Q<?sometext ."und Sonderzeichen(Bla)? @@KEYWORD@@?>\E
Danach zieht natürlich mein \w* nicht mehr...

Frage: wie kriege ich einfach aus meinem Ausgangspunkt jedes RegExp-Sonderzeichen einzeln maskiert?

Dank euch für Tips!

MfG
Rouven

--
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Was das Verhalten eines Experten so besonders macht ist sein Wissen und seine Erfahrung und nichts besonderes an ihrem oder seinem Gehirn. Wir gehen davon aus, dass die Prozesse die dem Denken zugrunde liegen sehr gradlinig sind. Wahrnehmung und selektive Suche.  --  Herbert A. Simon, Nobelpreisträger, 1916-2001