ich diese Anforderung haben - für eine Eingangszeichenfolge wie die untenErsetzen mehrere Capture-Gruppen unter Verwendung von regulären Ausdruck mit Java
gezeigt8This8 is &reallly& a #test# of %repl%acing% %mul%tiple 9matched9 9pairs
Ich mag würde die angepassten Wortgrenzen strippen (wo das passende Paar 8 oder & oder% usw.) und werden in der folgenden
This is really a test of repl%acing %mul%tiple matched 9pairs
Diese Liste von Zeichen resultieren, die zB variieren kann für die Paare verwendet wird 8,9,%, # etc und nur die Wörter, die mit jedem Typ am Anfang und am Ende übereinstimmen, werden von diesen Zeichen beraubt, wobei das gleiche Zeichen in das Wort eingebettet wird, das dort verbleibt, wo es ist.
Mit Java I, ein Muster wie \\b8([^\\s]*)8\\b
und Ersatz als 1 $ tun kann alle Vorkommen von 8 ... 8, zu erfassen und zu ersetzen, aber wie soll ich tue dies für alle Arten von Paaren?
ich ein Muster wie \\b8([^\\s]*)8\\b|\\b9([^\\s]*)9\\b
zur Verfügung stellen kann .. und so, dass alle Arten von passenden Paaren * 8,9, ..) entspricht, aber wie definiere ich eine ‚Variable‘ Ersatz Gruppe -
z.B Wenn die Übereinstimmung 9 ... 9 ist, sollte die Ersetzung $ 2 sein.
Ich kann natürlich durch mehrere von diesen laufen, jede ersetzt eine bestimmte Art von Paar, aber ich frage mich, ob es einen eleganteren Weg gibt.
Oder gibt es eine ganz andere Art, dieses Problem anzugehen?
Danke.
Danke. Die Verwendung der von Ihnen und einer anderen Person vorgeschlagenen Rückseitenreferenz und der Erfassung von Gruppen auf 2 scheint dies zu bestätigen. Ich verwende Folgendes (? ssen
@ssen genau das hast du. Viel reduzierter ein '(?