2015-05-21 65 views
6

Ho un file di menu html, che contiene un elenco di pagine html, estratto dal decodificatore chm.Utilizzo di Notepad ++ Trova e sostituisci con espressione regolare

(7,0,"Icons Used in This Book","final/pref04.html"); 
(8,0,"Command Syntax Conventions","final/pref05.html"); 
(9,0,"Introduction","final/pref06.html"); 
(10,0,"Part I: Introduction and Overview of Service","final/part01.html"); 
(11,10,"Chapter 1. Overview","final/ch01.html"); 
(12,11,"Technology Motivation","final/ch01lev1sec1.html"); 

voglio creare da questo un 'indice' per il file di Calibro (file HTML che contiene i collegamenti a tutti gli altri file nell'ordine desiderato). Il file finale dovrebbe essere simile a questo:

<a href="final/pref04.html">Icons Used in This Book</a><br/> 
<a href="final/pref05.html">Command Syntax Conventions</a><br/> 
. 
. 
. 

Quindi, prima ho bisogno di rimuovere i prefissi cifra con espressioni regolari, quindi aggiungere l'attributo a href per fare collegamento ipertestuale, e cambiare la posizione URL e il titolo. Qualcuno può mostrare come farlo con Notepad ++?

risposta

6

Penso che questo lo farebbe per te, sono basato su mac quindi non ho il blocco note ++ ma funziona in dreamweaver. Presunzione di ogni espressione è basata su una riga.

Ricerca:

\(.*?"(.*?)","(.*?)".* 

Sostituire:

<a href="$2">$1</a><br/> 

File:

(7,0,"Icons Used in This Book","final/pref04.html"); 
(8,0,"Command Syntax Conventions","final/pref05.html"); 
(9,0,"Introduction","final/pref06.html"); 
(10,0,"Part I: Introduction and Overview of Service","final/part01.html"); 
(11,10,"Chapter 1. Overview","final/ch01.html"); 
(12,11,"Technology Motivation","final/ch01lev1sec1.html"); 

Dopo Sostituisci tutto:

<a href="final/pref04.html">Icons Used in This Book</a><br/> 
<a href="final/pref05.html">Command Syntax Conventions</a><br/> 
<a href="final/pref06.html">Introduction</a><br/> 
<a href="final/part01.html">Part I: Introduction and Overview of Service</a><br/> 
<a href="final/ch01.html">Chapter 1. Overview</a><br/> 
<a href="final/ch01lev1sec1.html">Technology Motivation</a><br/> 

Se non è una modifica basata su riga .* a .*?\n. Questo dovrebbe fermarlo dopo ogni nuova riga. Per motivi di leggibilità, potresti anche voler aggiungere una nuova riga alla sostituzione.

dovrebbero probabilmente spiegare l'espressione regolare come pure nel caso in cui si desidera modificarlo ...

Il primo \ è sfuggire alla ( quindi la regex sa per cercare il carattere letterale e non speciale raggruppamento regex. Il *? dice trovare ogni carattere fino al primo "; (. è un singolo carattere, * è zero o più occorrenze del carattere precedente e ? indica che si interrompe alla prima occorrenza del carattere successivo, "). L'ultimo .* dice continua con la ricerca. I valori ( e ) attorno al gruppo .*? raggruppano il valore trovato in $1 e $2. Il numero si correla all'ordine in cui si trova nella regex.

+0

Questo funziona bene. Grazie! – minto

Problemi correlati