Ho provato ad usare:
per estrarre il body con espressioni regolari.codice:^.*[\s]*<body.*[\s]*>(.*[\s]*.*)</body.*[\s]*>.*[\s]*$
Non mi convince per niente :master:
Qualche aiuto?
Ho provato ad usare:
per estrarre il body con espressioni regolari.codice:^.*[\s]*<body.*[\s]*>(.*[\s]*.*)</body.*[\s]*>.*[\s]*$
Non mi convince per niente :master:
Qualche aiuto?
Pietro
Perche` tutti quei caratteri spazio tra quadre e scritti esplicitamente?
A parte che le quadre non servono nel tuo caso, ma gli spazi sono compresi nei caratteri individuati dal punto, quindi non serve scriverli esplicitamente.
Invece ci vogliono le backslash davanti a: < > /
E poi, cosa vuoi ottenere?
Data una stringa che contiene la pagina vuoi estrarre quanto contenuto tra i tag body? Io farei cosi`:Altro sistema e` usare .innerHTML dell'ogetto document oppure document.body (da applciare chiaramente ad una pagina aperta nel browser).codice:/\<body[^\>]*\>(.+?)\<\/body/
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Ho usato quella stringa perchè ho ricordato che il punto è:
qualunque carattere, eccentuata nuova riga e, tra <body....> e </body>
vi sono pure salti riga***
inoltre non posso utilizzare innerHTML perchè voglio imparare una buona volta a capire le espressioni regolari![]()
Pietro
Se ci sono interruzioni di riga, devi usare il /s alla fine della RegExp:
/\<body[^\>]*\>(.+?)\<\/body/s
Se il body puo` essere scritto anche maiuscolo, devi usare anche il /i:
/\<body[^\>]*\>(.+?)\<\/body/si
Nota che queste info le ho ricavate dal manuale RE del Perl: i manuali di JS non sono cosi` dettagliati (quelli che ho visto io, per lo meno).
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
mi sembra fosse 'm' per il multiline, o ricordo male?
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
Allora, mi cospargo il capo di cenere e confesso:
non mi serve in javascript, ma nel server.
Il problema è che (non me ne voglia nessuno) solo qui ho trovato chi capisca le espressioni regolari![]()
detto questo, seguo i vostri consigli e ci provo.![]()
Pietro
Ricordi bene, ma credo che quello che serve e` il /s per far includere anche i caratteri \n nei \.Originariamente inviato da fcaldera
mi sembra fosse 'm' per il multiline, o ricordo male?
Se ho capito bene, il /m trasforma ^ e $ a individuare l'inizio/fine della intera stringa e non i singoli inizi/fine delle righe; invece il /s trasforma il . a includere anche i \n .
(fonte: man perlre).codice:m Treat string as multiple lines. That is, change "^" and "$" from matching the start or end of the string to matching the start or end of any line anywhere within the string. s Treat string as single line. That is, change "." to match any character whatsoever, even a newline, which normally it would not match. The "/s" and "/m" modifiers both override the $* setting. That is, no mat- ter what $* contains, "/s" without "/m" will force "^" to match only at the beginning of the string and "$" to match only at the end (or just before a newline at the end) of the string. Together, as /ms, they let the "." match any character whatsoever, while still allowing "^" and "$" to match, respectively, just after and just before newlines within the string.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Su alcuni problemi (tipo RegExp) io rispondo anche nel forum CGI e Perl. Per altri forum non so dire - non li seguo.Originariamente inviato da pietro09 Il problema è che (non me ne voglia nessuno) solo qui ho trovato chi capisca le espressioni regolari![]()
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
mi sembrava che gli unici modificatori ammessi in javascript fossero (nell'ordine)
/g - global
/i - case insensitive
/m - multiline
/m ricordo di averlo usato per cercare in un blocco di testo su più righe.
Edit
vedi http://www.regular-expressions.info/javascript.html
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)