2013-05-23 12 views
10

Eclipse-regexp Suche funktioniert recht gut, so zum Beispiel in Suchfeld I (?s)(myMethod.*?;)\}\);mehrzeilige Suche mit regexp in Eclipse ersetzen

Jetzt habe ich Box mehrzeiligen Text in der IDE und in ersetzen kopieren möge, zum Beispiel ich will einfügen \1PASTE_MULTILINE_TEXT_HERE. Eclipse erlaubt es mir jedoch nicht, mehrzeiligen Text direkt zu kopieren, ohne manuell Zeilenumbrüche einzufügen.

In vim (gvim, macvim) funktioniert es sehr gut und behält alle Räume; Wie kann ich dasselbe in Eclipse machen?

+0

http://stackoverflow.com/questions/4154239/java-regex-replaceall-multiline –

+1

danke, aber das ist mehr über die mehrzeilige Suche, aktiviert durch dotall flag oder (? S), die ich bereits mache. Bitte beachten Sie, dass Suche Teil funktioniert, Multiline-Ersatz ist nicht – codegood

+0

@codegood nach einigen umfangreichen Recherchen fand ich heraus, dass Sie die dateibasierten Suchfelder verwenden können, um mehrere Zeilen ersetzen zu tun. Die Tatsache, dass der "Editor" ersetzt (in der Popup-Liste) ohne Angabe von Fehlern ausfällt, halte ich für einen Eclipse-Fehler und muss herausfinden, ob ich dafür einen Fehlerbericht erstellen muss ... –

Antwort

2

Im Allgemeinen ist der Ansatz, den ich zu dieser Art der Sache gemacht habe, zu tippen, was ich als Ersatz verwenden möchte, wählen Sie das, öffnen Sie den Suchen/Ersetzen-Dialog und kopieren Sie den Inhalt des Find-Textes Box. Ich fahre von dort fort und füge das, was ich kopiert habe, in das Textfeld Ersetzen ein. Es gibt noch ein wenig Arbeit zu erledigen (das Entfernen von Backslashes vor Regex-Sonderzeichen, die im Feld Ersetzen nicht gelten), aber es gibt mir eine Hand hoch.

14

Für mehrere Zeilen in Eclipse suchen, müssen Sie das 's' Parameter auf der Suche Ausdruck verwenden:

(?s)someExpressionToMatchInAnyLine 

Für mit mehreren Linien ersetzt exp Sie \ R dh verwenden müssen:

line1\Rline2\Rline3 


line1
line2
line3

: Dies wird die angepasst exp mit ersetzen
Verwandte Themen