[Python] Una dritta sulle espressioni regolari
Cesco
dev a cesco.it
Mar 31 Maggio 2011 18:10:39 CEST
Ciao, scusate se vi rompo le scatole... qualcuno di voi ha
dimestichezza con le espressioni regolari?
Ho del codice HTML e dovrei cercare il contenuto dell'attributo "name"
all'interno di un tag <input> o di un tag <select>
Ad esempio:
... testo ... <input name="pippo" value="pluto" /> ...
Io ho bisogno di ottenere: pippo
Finora per ottenere questo obbiettivo ho scritto una funzione che
sostanzialmente fa questo:
1) Cerco tutti i tag <input> e <select> (
<input\b[^>]*>(.*?)|<select\b[^>]*>(.*?)</select> )
2) In ogni tag trovato cerco la presenza della stringa <<
name="QUALCOSA" >> ( name=\".[?:\"]+ )
3) Nella stringa trovata cerco la presenza dei doppi apici ( \".+\" )
4) Tolgo i doppi apici e finalmente ottengo il contenuto del tag name
E funzionerebbe anche, solo che mi sembrano tanti passaggi e sospetto
che se conoscessi un po meglio le espressioni regolari magari la cosa si
potrebbe fare con una sola ricerca ben assestata... Per caso conoscete
un modo per specificare in un espressione regolare che cerco del testo
che venga preceduto da un certo pattern e che venga fatto seguire da
un'altro pattern *MA CHE NON CONTENGA* il pattern ricercato?
Se riusciste ad aiutarmi ve ne sarei davvero grato.
Grazie mille per il vostro tempo!
P.S.: Purtroppo non posso convertire il codice HTML in XML, poichè devo
fare questo lavoro con la clipboard e selezionando il codice HTML non
sempre mi arriva ben formattato (es: può arrivarmi una cosa del tipo
"ciao a <strong>Tutti qua..." in cui non c'è il tag </strong> di
chiusura, per cui per l'XML viene giustamente considerato invalido)
Maggiori informazioni sulla lista
Python