Passen Sie ein Java-String-Literal richtig an [duplizieren]

8

Ich suche nach einem regulären Ausdruck, um Zeichenfolgenliterale im Java-Quellcode zu finden.

Ist es möglich?

%Vor%

Meine Absicht ist es, alle Zeichenfolgen in einer anderen Zeichenfolge durch etwas anderes zu ersetzen. Verwenden:

%Vor%

So ähnlich.

    
Tiago Veloso 02.06.2010, 14:49
quelle

5 Antworten

4

Ok. Sie möchten also innerhalb eines Strings nach einer Folge von Zeichen suchen, die mit doppelten Anführungszeichen beginnen und enden?

%Vor%

Beachten Sie das nicht-gierige .*? -Muster.

    
Wangnick 02.06.2010, 15:21
quelle
2

Diese Regex kann auch mit doppelten Anführungszeichen umgehen (HINWEIS: perl erweiterte Syntax):

%Vor%

es definiert, dass jedes "eine ungerade Menge von Escape \ davor" haben muss

vielleicht ist es möglich, dies ein wenig zu verschönern, aber es funktioniert in dieser Form

    
Hachi 25.10.2012 13:54
quelle
1

Sie können verschiedene Parser-Generatoren für Java und deren regulären Ausdruck für das StringLiteral-Grammatikelement betrachten.

Hier ist ein Beispiel von ANTLR :

%Vor%     
Uri 02.06.2010 14:52
quelle
-1

Sie sagen nicht, mit welchem ​​Werkzeug Sie Ihre Suche durchführen (perl? sed? Texteditor ctrl-F usw.). Aber eine allgemeine Regex wäre:

%Vor%

Bearbeiten: Dies ist ein schnelles & amp; dreckige Antwort, und nicht gemanagte Zitate, Kommentare usw.

    
Richard H 02.06.2010 14:54
quelle
-1

Verwenden Sie dies:

%Vor%

Getestet mit

%Vor%

Ergibt das folgende 'B'

%Vor%     
tucuxi 02.06.2010 16:37
quelle