2010-04-22 38 views

risposta

28

Se avete bisogno di esattamente 3 numeri, il seguente viene testato in Notepad ++:

width=\d\d\d[^\d] 

Lettura ulteriormente nel vostro requisito, è possibile utilizzare la funzione di tagging:

Find what: width=(\d\d\d)([^\d]) 
Replace with: width="\1"\2 

Qui, il (n) le parti con bracketing della regex sono memorizzate (in sequenza) come \ 1, \ 2, ... \ n a cui è possibile fare riferimento nel campo di sostituzione.

Come un motore regex, Notepad ++ è scadente. Here è una descrizione di cosa è supportato. Piuttosto basico.

+2

So It non supporta '{3}' ma supporta negare le classi di caratteri (che non sono sempre supportate?) che tipo di follia "Espressioni regolari" hanno inserito in Notepad ++ ??? – gnarf

+0

Sebbene supporti \ d, che non è elencato in quella pagina, sospetto quindi che la pagina sia inaccurata e non aggiornata. Ho usato \ s + e \ t. – jmanning2k

+0

La larghezza = "\ 1" \ 2 sostituisce le foglie width = "", quindi sembra che \ 1 non restituisca nessuna cifra – atwellpub

9

Guardando il Notepad++ Regular Expression list non sembra supportare la notazione {n} per abbinare n caratteri, in modo da \d{3} non ha funzionato.

Tuttavia, ciò che ha funzionato per me e può essere considerato un hack era: \d\d\d

testato in Notepad ++ e ha lavorato, per il campo Usa (\d\d\d) e per l'uso Sostituire archiviato "\1"\2.

+0

Questa è stata una larghezza di successo = \ d \ d \ d, ma sono in perdita su cosa impostare la sostituzione per preservare i 3 numeri – atwellpub

2
/(width=)(\d+?)/gim 

Perché si possono volere cifre variabili. Alcune larghezze possono essere 8, o 15, o 200, o qualsiasi altra cosa.

Se si desidera specificare un intervallo, lo fate come questo:

/(width=)(\d{1,3)/gim 

dove l'1 rappresenta il limite inferiore e il 3 rappresenta il superiore.

Ho raggruppato entrambe le parti dell'espressione, quindi quando si sostituisce è possibile mantenere la prima parte e non soffiare via.

2

provato: sostituire width=([0-9][0-9][0-9]) con width="\1" e funzionava bene ... Certo non potrebbe essere migliore sintassi per fare questo, ma funziona ...

6

Come Tao ha commentato, a partire dalla versione 6, Notepad ++ supporta PCRE.

Così ora si può scrivere:

\d{1,5} 
+0

Ho provato in 6.3, dice "Espressione regolare errata" ... Dovrebbe essere '\ d {1,5}' – mrdaliri

+0

Grazie, corretto. –

+0

Fantastico! Proprio quello che sto cercando. Usa '\ d {10}', per esempio, per trovare una stringa di 10 numeri. – thatWiseGuy

Problemi correlati