PDA

View Full Version : [RegExp] aiutino, non funziona come dovrebbe


dierre
25-01-2007, 22:17
questa è la re:
<([a-z][a-z0-9]*)[^>]*>.*?</\1>

ma non mi funge bene, per esempio in questa stringa seguente:

<div ciao="ciao"> <div class=""><img class=""> sdfsdfsd</div></div>

mi becca la parte gialla, io però vorrei mi prendesse l'ultimo div come tag di chiusura.
(purtroppo l'ultimo div non è a fine stringa)

Se poi è di sto tipo la stringa:

<div ciao="ciao"> <div class=""><img class=""> sdfsdfsd
</div>
</div>

non funge proprio.

dierre
25-01-2007, 23:03
ok, ho risolto :asd: quindi cambio la domanda:

in javascript come si scrive nell'oggetto regexp una stringa del genere?

(?ms)<div[^>]*>.*</div>

mi da errore sulla prima parte (?ms)

MEMon
25-01-2007, 23:19
non capisco se le parentesi le usi come opzioni o come caratteri da cercare, nel secondo caso mettici un \ davanti

dierre
25-01-2007, 23:24
sono opzioni.
Mi serve per avere il testo composto da linee multiple e allo stesso tempo essere sicuri che il punto possa accettare ogni carattere, nuova linea compreso.

dierre
25-01-2007, 23:30
se provo a scriverlo così

var re = "<div[^>]*>.*</div>"/ms;

mi dice però: ms is not defined

MEMon
25-01-2007, 23:31
Allora immagino che sia il ? il carattere, mettici davanti un \.
Altrimenti se anche quello è un opzione l'errore sta lì, non puoi mettere due opzioni vicine, quindi (? non va bene.

MEMon
25-01-2007, 23:33
infatti nn esiste ms esiste i g ed m

dierre
25-01-2007, 23:52
dici in javascript? Perché nelle regexp esiste e funziona pure, provala con regexbuddy