Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    11

    Estrarre contenuto tra i tag

    Ciao ragà !!!

    avrei la necessità di estrarre fra le parentesi quadre il contenuto che vi è racchiuso: [strong] [/strong] come pure [cane] [gatto] etc.

    ovviamente in VBS.

    Io conosco la funzione split ma non nella pratica e vorrei che qualcuno mi aiutasse a realizzare un piccola funzioncina, affinchè possa estrarre il conetuno fra le parentesi indicate sopra.

    Qualcuno è disposto a darmi una mano ?

    Vorrei crare una funzione del tipo:

    function extract(stringa)
    ...
    split(.....)
    extract=contentuo
    End function
    Cristian B. from Swiss

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Si puo` fare con le RegExp. Ora io non conosco VBS, ma ti posso fare la RE che poi devi implementare nel tuo programma.

    pero` non ho capito se vuoi estrarre (nel tuo esempio)
    strong
    /strong
    cane
    gatto

    oppure quanto contenuto tra due tag uno aperto ed uno chiuso: esempio se hai "[strong]questo testo in neretto[/strong]" vuoi estrarre solo "questo testo in neretto"

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    11
    giusto volgio estrarre i valori racchiusi fra le parentesi
    Cristian B. from Swiss

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    11
    avevo pensato di usare un ciclo for ... next e all'occorenza costruire la sottostrinfa (contenuto)


    For i = 0 To len(Stringa)
    if stringa[i] = "[" Then
    costruisce sottostringa
    End if
    next

    un esempio ma non so come realizzarlo
    Cristian B. from Swiss

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao net sat,

    sono un po' rinco ... mi faresti capire con un esempio?
    Tipo se la stringa è
    codice:
    prova = "questa è una prova. [strong]questo qui è strong[/strong] e invece [cane]questo è cane[/cane]"
    cosa vuoi che restituisca
    codice:
    extract(prova)

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: Estrarre contenuto tra i tag

    Originariamente inviato da net sat
    ovviamente in VBS.
    Come mai "ovviamente" in VBS? (lato server o lato client?)

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ti faccio l'esempio in JS. Poi se lo vuoi in VBS devi farti la conversione tu.


    var prova = "questa è una prova. [strong]questo qui è strong[/strong] e invece [cane]questo è cane[/cane]";

    var RE = new RegExp(".*(\[.+\])", g);

    var estraz = RE.exec(prova);

    for (var i=0; i<estraz.length; i++) {
    alert (estraz[i]);
    }


    Provalo, perche` io non lo ho fatto, e non sono cosi` sicuro.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    11
    SI, Willybit, ... non sei "rinco", hai capito bene !!!

    ovviamente il tag cane era un esempio ma il concetto è chiaro.

    Purtroppo in Javascript non sono capace e convertirlo in VBS è onoroso perchè non conosco la funzione che mi permetta di scansionare una stringa e controllarla per singolo carattere.

    Io in Pascal facevo così:


    Stringa:="Questa linea contiene dei [strong]TAGS[/strong];

    For i:=1 to Length(Stringa) Do
    Begin
    If stringa[i]="[" Then istruzione ....
    End;


    In VBS non so come si accede al singolo carattere...
    Cristian B. from Swiss

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da net sat
    SI, Willybit, ... non sei "rinco", hai capito bene !!!
    grazie net sat sei troppo buono :gren:
    invece di "scansionare" la stringa carattere per carattere ti conviene usare una RegExp come suggerito da Mich_ (però Mich_ la tua RE non mi pare giusta :master: )
    codice:
    <script language="VBScript">
    Function extract(stringa)
    	set RE = new RegExp
    	RE.Pattern="\[[^\]]*]"
    	RE.Multiline=true
    	RE.Global=true
    	RE.IgnoreCase=true
    	Set risultati = RE.Execute(stringa)
    	Set extract = risultati
    End Function
    
    prova = "questa è una prova. [strong]questo qui è strong[/strong] e invece [cane]questo è cane[/cane]"
    
    set ris = extract(prova)
    for each r in ris
    	document.write r.value & "
    "
    next
    </script>
    il risultato di questo esempio sarà
    [strong]
    [/strong]
    [cane]
    [/cane]

    è questo quello che volevi?... o magari avevo ragione io... sono rinco :gren:

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    11
    avrei preferito in VBS ma adesso provo con questa versione ....
    Cristian B. from Swiss

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.