ich die REGEX Bibliothek bin mit wie hier definiert http://userguide.icu-project.org/strings/regexpHPCC ECL REGEX Lookarounds back-to-back-Werte
That being said ich ein bestimmtes Problem haben würde Ich mag regex verwenden zu korrigieren.
Input := '!Tim !~ Dan~';
Output := Tim !~ Dan
REGEXREPLACE('((?<![!])~)' ,Input,' '); //Results in : !Tim !~ Dan
REGEXREPLACE('((?![~])!)|((?<![!])~)',Input,' '); //Results in : Tim ~ Dan
Was ist mit dieser Aussage verursacht die! nach dem ~ zu entfernen?
Wie entferne ich alles! und ~ ohne die Kombination von! ~ in einem einzigen Regex-Befehl zu entfernen.
BONUSPUNKTE, wenn Sie mir sagen können, wie man macht! ~! in einem einzigen Befehl arbeiten.
Danke !!
Also im Grunde sagt, Ersetzen Sie alles in Gruppe 1 mit sich selbst und alles außerhalb der Gruppe mit einer leeren Zeichenfolge. Ich hätte gedacht, dass $ 1 jede Instanz des Zeichensatzes ersetzt hätte. Warum ist das nicht der Fall? –
'$ 1' ist eine [* nummerierte Rückreferenz *] (http://www.regular-expressions.info/replacebackref.html). Es bezieht sich auf den Text, der mit der entsprechenden Erfassungsgruppe im Muster erfasst wurde. A [* capturing group *] (http://www.regular-expressions.info/brackets.html) ist ein Paar nicht umrandeter Klammern innerhalb eines Musters. –
Okay, es ist erwähnenswert für andere, dass (! ~) | [! ~] Nicht andersherum referenziert werden kann, da sonst die Zeichen aus dem Satz ersetzt werden, bevor die Gruppe gefunden wird. –