Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    regexp: array con le occorrenze

    cia a tutti.

    ho un problema molto grande con le regexp:

    ho una stringa molto lunga, praticamente il codice html di una pagina. e vorrei sapere quante volte nel codice è presente una stringa tipo "PIPPO=8769876"

    per esempio:


    stringa = "<xxx pippo=312>, <yyy xxx pippo=789> dasd as <zzz yyy xxx pippo=567>"

    mi serve di ricavare l'array contenenze

    array_pippo[0]=321
    array_pippo[1]=789
    array_pippo[2]=567

    diciamo che pippo si trova sempre alla fine del tag, quindi come carattere limite si potrebbe usare il ">"

    esiste un modo per fare tutto questo con una regexp? qualcosa di simile a quello che in asp farei così:

    codice:
    set re = server.CreateObject("VBScript.RegExp")
    re.Pattern = "<([^\v]*?)>"
    
    re.IgnoreCase=true
    re.Global=true
    re.Multiline=true
    
    set ris = re.Execute(str) 'eseguo la ricerca
    
    for each match in ris
    	
    	response.Write(match & "
    ")
    
    	conta = conta + 1 
    next
    
    ma con un pattern differente
    
    sapete aiutarmi?
    Sono così maledettamente attraente...

    QuickChat. (Asp e ajax)

  2. #2
    ecco, ci sono quasi:

    codice:
    array_pippo = stringa.match(/pippo=([^\v]*?)>/g)
    ma il pattern non va proprio bene bene. Mi spiego: senza passare per il replace dovrei estrarre solo quello che sta tra "pippo=" e il ">"... invece come ho scritto mi estrae tutto, cioè "pippo=123>", a me serve che il pattern mi estragga solo "123". Mi sapete aiutare?
    Sono così maledettamente attraente...

    QuickChat. (Asp e ajax)

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non ricordo se javascript supporta il "positive lookbehind"

    perchè proverei a fare una cosa del tipo

    codice:
    array = stringa.match(/(?<=pippo\=)\d+?>/g)

    (?<=a)b
    significa "matcha solo b se è preceduto da a"
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    mmhh...


    non funziona, se provo così:

    array = stringa.match(/(?<=pippo\=)\d+?>/g)

    mi da errore sul primo "?"

    se tolgo il primo "?" non trova niente


    ....
    Sono così maledettamente attraente...

    QuickChat. (Asp e ajax)

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    no, non è supportato
    però ho trovato questo: http://blog.stevenlevithan.com/archi...ind-javascript
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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 © 2026 vBulletin Solutions, Inc. All rights reserved.