Betrachten Sie die folgende regex:Wie conditionals verwenden, wenn in Notepad ++ über regex ersetzen
([a-zA-Z])([a-zA-Z]?)/([a-zA-Z])([a-zA-Z]?)
Wenn der Text ist: a/b
die diesen Gruppen sind:
/1 'a'
/2 ''
/3 'b'
/4 ''
Und wenn die Text ist: aa/b
die einfangenden Gruppen werden:
/1 'a'
/2 'a'
/3 'b'
/4 ''
Angenommen, ich möchte diese Zeichenfolge in Notepad ++ so finden und ersetzen, dass, wenn /2
oder /4
leer sind (wie im ersten Fall oben), ich c
voranstellen.
So wird der Text a/b
wird ca/cb
. Und der Text aa/b
wird aa/cb
ich die folgende regex verwenden zu ersetzen:
(?(2)\1\2|0\1)/(?(4)\3\4|0\3)
Aber Notepad ++ ist ?
wahrsten Sinne des Wortes in diesem Fall zu behandeln, und nicht als eine bedingte Kennung. Irgendeine Idee was mache ich falsch?
Ich denke, Ihre Platzierung der '?' Falsch sein und dies könnte sein, warum Notepad ++ ist sie als Literale behandeln. –