Sto cercando di utilizzare Notepadd ++ per trovare tutte le occorrenze di larghezza = xxx modo che io possa cambiare a width = "xxx"Notepad ++ regex per trovare 3 numeri consecutivi
per quanto ho avuto è width = [^\ n], che seleziona solo width = x
Sto cercando di utilizzare Notepadd ++ per trovare tutte le occorrenze di larghezza = xxx modo che io possa cambiare a width = "xxx"Notepad ++ regex per trovare 3 numeri consecutivi
per quanto ho avuto è width = [^\ n], che seleziona solo width = x
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.
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
.
Questa è stata una larghezza di successo = \ d \ d \ d, ma sono in perdita su cosa impostare la sostituzione per preservare i 3 numeri – atwellpub
/(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.
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 ...
Come Tao ha commentato, a partire dalla versione 6, Notepad ++ supporta PCRE.
Così ora si può scrivere:
\d{1,5}
Ho provato in 6.3, dice "Espressione regolare errata" ... Dovrebbe essere '\ d {1,5}' – mrdaliri
Grazie, corretto. –
Fantastico! Proprio quello che sto cercando. Usa '\ d {10}', per esempio, per trovare una stringa di 10 numeri. – thatWiseGuy
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
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
La larghezza = "\ 1" \ 2 sostituisce le foglie width = "", quindi sembra che \ 1 non restituisca nessuna cifra – atwellpub