2009-09-08 7 views
39

Se ho il seguente testo nel mio editor di Eclipse:Come cercare di ritorno a capo in Eclipse

Text Line 1 
Text Line 2 

vorrei per concatenare il testo in:

Text Line 1Text Line 2 

La mia prima idea era quella di cercare il carattere di ritorno a capo '\ n' e sostituirlo con '' per concatenarlo.

Ho provato a utilizzare la funzione di ricerca di eclissi, ma non riconosce il carattere di ritorno a capo.

Ci sono altri editor che possono farlo?

Grazie =)

risposta

59

Eclipse fa questo se:

  • di attivare la modalità di espressione regolare è ricerca/sostituzione
  • immettere \ R per il ritorno a capo
2

La maggior parte trova e sostituisci compiti redattori (almeno, TextPad) hanno la capacità di sostituire tramite un'espressione regolare. Se riesci a trovare questa opzione in eclissi, usala.

8

Basta usare Edit -> Find/Replace, attivare la casella Regular Expressions, cercare \n e sostituirlo con lo spazio.

L'ho provato in Eclipse 3.4 e ha funzionato bene.

+0

+1 per spiegare effettivamente i passaggi. – McGafter

0

\ r è l'espressione regolare corretta per il ritorno a capo . Ma l'editor standard di Eclipse non lo trova. in modo da utilizzare editor esterno, ad esempio Notepad ++

0

Risposta breve:

ho deciso di usare \s++ come separatore in multi espressioni di ricerca di linea (con le espressioni regolari abilitati) e \Qfoo\E per sfuggire caratteri speciali, se necessario.

Risposta lunga:

Come soru già risposto, per qualsiasi "sequenza di interruzione di riga Unicode" può essere utilizzata una ricerca espressione regolare con \R.

Un ritorno a capo puro è rappresentato da \r. Maiuscole e minuscole fanno la differenza.

ho trovato questo SO domanda perché volevo cercare una linea di un'espressione più in Eclipse, tra cui interruzioni di riga e schede:

@Override 
    @Transient 

Al fine di includere gli spazi bianchi nella mia espressione regolare ricerca ho usato (su piattaforma Windows)

@Override\r\n\t*@Transient 

seguenti espressioni funzionano anche:

Si prega di notare che il secondo espressione corrisponde anche @Override @Transient senza una linea di rottura, che va bene per me.

Le seguenti espressioni no! funzionato per me:

  • @Override\r\t*@Transient
  • @Override\n\t*@Transient

Spiegazione di alcune espressioni regolari:

  • \R rappresenta qualsiasi sequenza unicode interruzione di linea (ad esempio \r\n)
  • \s rappresenta qualsiasi bianco s ritmo
  • \t rappresenta una scheda
  • * zero o più occorrenze
  • ++ abbinamento a uno o più occorrenze
  • \Q e \E fuga avvolto contenuti. Usarli se l'espressione più originale linea include caratteri regex speciali, ad esempio

\Q/**\E\s++\Q*\E

partite

/** 
    * 

vedi anche:

Difference between \n and \r?

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html