Sono passato a Python abbastanza recentemente e sono interessato a ripulire un numero molto grande di pagine web (circa 12k) (ma può essere considerato altrettanto facilmente come file di testo) rimuovendo alcuni tag particolari o altri pattern di stringhe. Per questo sto usando la funzione re.sub (..) in Python.Sostituzione usando più regexes o uno più grande in Python
La mia domanda è se è meglio (dal punto di vista dell'efficienza) creare una grande espressione regolare che corrisponda a più dei miei schemi o chiamare la funzione più volte con espressioni regolari più piccole e più semplici.
Per esemplificare, è meglio usare qualcosa come
re.sub(r"<[^<>]*>", content)
re.sub(r"some_other_pattern", content)
o
re.sub(r"<[^<>]*>|some_other_pattern",content)
Naturalmente, per il bene di esemplificare i modelli precedenti sono molto semplici e non li ho compilato qui, ma nello scenario della mia vita reale lo farò.
LE: La domanda non è correlata alla natura HTML dei file, ma al comportamento di Python quando si gestiscono modelli di regex multipli.
Grazie!
[Avviso obbligatorio sull'analisi dell'HTML con espressioni regolari] (http://stackoverflow.com/a/1732454/950912) – brc
In realtà, come ho detto, non si tratta principalmente di rimuovere e analizzare il testo HTML, ma di rimuovere alcuni particolari non- Modelli correlati a HTML. La mia domanda può anche essere posta più in generale su semplici file di testo e sostituire una serie di modelli in essi –
Penso che si tratti di quanto sei bravo con la regex ... se puoi farlo con uno che usare uno ... I Probabilmente lo romperesti in parecchi solo per renderlo più semplice da analizzare ... –