Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Regular expression

  1. #1

    Regular expression

    Ciao,
    devo riconoscere all'interno di una variabile che contiene tutto il codice html di una pagina i link alle altre pagine.
    Per fare questo ho creato una regular expression, ma purtroppo non riesco a fare quello che voglio...

    Vorrei prendere solo quanto è conpreso tra
    href="
    e
    "
    Il mio problema è che con il pattern che ho scritto mi esclude tutti i link che presentano spazi nell'url.

    come posso fare? io non so cosa ci sarà dopo l'url nel senso che potrei trovare un attributo title oppure un tabindex o altro...

    Grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  2. #2

  3. #3
    Grazie
    Si l'idea è quella, ed è la R.E. da cui sono partito, ma qui lo script riconosce quello che contiene http:// o www e non contiene spazi.

    Ora provo a sostituire gli spazi nella variabile con dei + e ad aggiungere il nome del dominio all'inzio dei link....

    Però son convinto che ci sia una soluzione più razionale.
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  4. #4
    no... non va come dovrebbe infatti...

    Spiego meglio la mia situazione.

    Leggo il codice html di una pagina web, che quasi mai avrà collegamenti assoluti (http:// ecc..) ma quasi sempre relativi (es: contatti.asp?mex=effettua il login)

    Quindi quello che voglio individuare è la parte href="contatti.asp?ecc=eccecc" che poi andrò a sostituire effettuando un Replace(Replace(var, "href=""", ""), """", "")

    non so però come fare per dire alla regexp di predere tutto quello che trova da href fino alla chiusura del doppio apice....
    Parte dall'href ma poi si ferma dove gli pare....
    Oppure gli dico di fermarsi se trova spazi... ma non è corretto.

    Grazie dinuovo
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  5. #5
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  6. #6
    Grazie mille, forse combinando una di queste regexp, il comando insrt e il comando left dovrei riuscire ad ottenere quello che voglio.

    Appena sono riuscito lo posto qui. Ho trovato diverse discussioni sull'argomento senza soluzione.
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  7. #7
    Ecco il codice che estrapola i link dalla variabile che contiene l'html della pagina:

    'Regular expression che estrapola il tag <a>
    Set rText = New regexp
    rText.Pattern ="<a\b[^>]*>(.*?)</a>"
    rText.Global = True
    rText.IgnoreCase = True
    'Esecuzione della regular expression nel codice HTML
    Set objCols = rText.Execute( sHTML )
    For Each objMatch in objCols
    href = objMatch.Value
    lungo = len(href)
    dovehref = instr(1, href, "href=")
    lungodestra = (lungo-(dovehref+5))
    dahrefinpoi = right(href, lungodestra)
    dovedoppiapici = instr(1, dahrefinpoi, """")
    href=left(dahrefinpoi, dovedoppiapici)
    href=replace(href, """", "")
    sText = sText & href&"
    "
    Next


    'Pulisce tutto
    Set rText = Nothing
    Set objCols = Nothing
    %>
    Spero che possa servire a chi lo aveva chiesto qualche post fa
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  8. #8
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Bravo!
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.