Come visualizzare un URL utilizzando espressioni regolari

January 8

Come visualizzare un URL utilizzando espressioni regolari


Espressioni regolari forniscono al programmatore con potenti strumenti per l'analisi del testo e la manipolazione. Trovato in tutto il mondo da e-commerce validazione dei form di high-stakes contenzioso - Dove Ricerca avvocati per combinazioni di parole in messaggi di posta elettronica che si aggiungono a "colpevole" - regex appartengono a cassetta degli attrezzi di ogni programmatore. Purtroppo, la loro sintassi arcana si pone come una barriera per molti utenti che potrebbero trarre beneficio da loro. Un uso possibile la scansione di un testo per Universal Resource Locator, conosciuti colloquialmente come indirizzi web. Il linguaggio di programmazione Python realizza questo compito in poche righe di codice.

istruzione

1 Aprire IDLE e creare un file di testo di prova copiando e incollando un testo casuale nel file insieme ad alcuni URL. Salvare il file come Testtext.txt nella directory che si apre nella finestra di dialogo Salva in modo da non dovete preoccuparvi di percorsi tra l'interprete Python e questo file.

2 Vai alla finestra principale IDLE e tipo

importazione re

al prompt di Python. Questo carica motore delle espressioni regolari di Python.

3 Leggi il testo di prova in Python e tenerlo in memoria con i seguenti comandi:

TestText = open ( 'OCB_1.txt')

cruda = TestText.read ()

OCB_1.txt è il nome del mio file di test -. Un copia e incolla di Ambrose Bierce di "Un Evento a Owl Creek Bridge", con un paio di URL incollate nella Nei comandi di cui sopra, il file di testo viene aperto e assegnato alla variabile testText; viene poi letta in memoria con il grezzo variabile associata.

4 Pre-compilare l'espressione regolare, al fine di accelerare il processo di analisi. Questo è particolarmente utile quando si tratta di grandi file di testo. Digitare i seguenti comandi al prompt di Python:

pattobj = re.compile ( 'https: // ([- \ w.] +) + (:? \ d +) (/ ([\ w / _.] * (\ \ S +)))???? ')

5 Richiamare il metodo findall digitando il comando relativo regex insieme con la variabile che fa riferimento al testo in memoria:

findallobj = pattobj.findall (grezzo)

Questo crea una nuova variabile, findallobj, che contiene i modelli generati dal regex.

6 Visualizzare l'URL della regex trovata con il comando di stampa:

stampa (findallobj)

L'output simile a questa:

[( 'Www.sjca.edu'), ( 'www.cantlers.com/index.shtml')]

Consigli e avvertenze

  • Salvare questi passi come uno script Python con il nome find_url.py. È possibile eseguire di nuovo semplicemente cambiando il nome del file di testo che si desidera cercare.
  • L'espressione regolare che corrisponde URL, ( 'https: // ([- \ w \.] +) + (:???? \ D +) (/ ([. \ W / _ \] * (\ \ S +)) ?)? '), può essere utilizzato in Perl, JavaScript, VB.net, e molti altri strumenti di programmazione e di scripting con piccoli aggiustamenti.