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)
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a