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

    Regular expression in ASP... ma sono fatte bene ?

    Ciao a tutti,

    Ho testato una regular expression da me creata con vari tools e tutto ok, ma asp invece mi restituisce questo errore:

    codice:
    Microsoft VBScript runtime error '800a1399' 
    
    Syntax error in regular expression
    In particolare sembrerebbe non accettare i negative lookbehind e simili, quale ad esempio (?<!prova)

    Qualcuno ne sa qualcosa a riguardo ?

    Grazie
    SGr33n

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

    in VBScript le RegularExpressions non sono perfette (sono meglio per .NET)
    io sinceramente non conosco questi "negative lookbehind"... ma magari si può raggirare il problema. Potresti postare la RE e spiegare cosa devi fare?

  3. #3
    Ma certo anzi grazie della disponibilità

    Dunque la RegEx in questione è questa:

    [code]
    (?<!\[url=)http
    [/code]

    Mi serve per raggirare i BBcodes...

    Ho anche provato ad usare [^\[url\=] ma questo comando nemmeno vuole funzionare :\

    Se volessi convertire lo script in .NET sarebbe molto complicato ?
    SGr33n

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    questa sintassi (?<!\[url=)http non la conosco
    questo pattern [^\[url\=] trova un qualunque carattere diverso da [, u, r, l, =

    di preciso cosa devi fare? Potresti fare un esempio?

  5. #5
    C'è in tutti i manuali di RegEx...

    Da http://www.gammon.com.au/mushclient/regexp.htm

    [quote]
    (?<!pattern) Negative lookbehind matches the search string at any point where a string not matching pattern begins.. For example, '(?<!foo)bar' finds an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. however, if there are several alternatives, they do not all have to have the same fixed length. thus '(?<!bullock|donkey)' is permitted, but '(?<!dogs?|cats?)' causes an error at compile time.

    ma sai che invece il mio server non elabora bene nemmeno la sintassi [^d]http che ho usato per prova...

    Cioè http dovrebbe riconoscrlo ma dhttp no... invece riconosce ^dhttp

    Che pensate ?

    Di preciso devo selezionare tutte le parole http che però non siano precedute da [url= ad esempio [url=http
    SGr33n

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    di negative lookbehind non so na sega
    per quello che devi fare tu potrebbe andare una cosa tipo questa?
    codice:
    testo = "questo è il testo con http://www.html.it e poi http://www.google.it e basta"
    Response.Write testo & "<hr>"
    Set objRE = CreateObject("VBScript.RegExp")
    objRE.Pattern="([^\[][^u][^r][^l][^=])(http)"
    objRE.Global=true
    objRE.IgnoreCase=true
    objRE.Multiline=true
    testo = objRE.Replace(testo,"$1<font color=red>$2</font>")
    Response.Write testo
    il forum cambia le cose.... guarda il codice quotando il mio post

  7. #7
    Grazie willybit ma sono oltre quello che hai postato tu... ho già identificato e sostituito i casi in cui l'indirizzo sia http://www.prova.com i casi in cui sia www.prova.com ed i casi in cui sia [ url]www.prova.com[ /url]

    Ora mi manca [ url=http://www.prova.com]clicca qui[ /url] e se questo codice passa sotto i controlli precedenti viene completamente stravolto... quindi vorrei escludere dai controlli precedenti i casi in cui l'indirizzo sia preceduto da [ url= ed in cui sia seguito da [ /url] solo che ciò nelle regular expressions si fa con il negative lookbehind (il termine precedente) e con il Negative lookahead (il termine successivo)

    Ma entrambi non funzionano a quanto pare con ASP

    Qualcuno mi saprebbe dare una mano ? sto impazzendo su questa cosa
    SGr33n

  8. #8
    ecco la conferma di tutto ciò

    da: http://aspnet.4guysfromrolla.com/art...spx#postadlink
    Lookaround
    Lookaround is a feature that is partially implemented in JScript but not in VBScript. There are two directions of lookaround - lookahead and lookbehind - and two flavors of each direction - positive assertion and negative assertion. The syntax for each is:


    (?=...) - Positive lookAHEAD
    (?!...) - Negative lookAHEAD
    (?<=...) - Positive lookBEHIND
    (?<!...) - Negative lookBEHIND
    SGr33n

  9. #9
    Ho trovato l'uovo di colombo :P caspita... ci sto perdendo tempo da ieri... mi basta fare il procedimento inverso cioè

    Trovo i links non in bbcode e li trasformo in bbcode e poi passo alla trasformazione in HTML...

    Spesso la soluzione giusta è la + semplice, basta non ragionare a senso unico come ho fatto io :\
    SGr33n

  10. #10
    Ho sbagliato i calcoli xkè se nel testo giunge qualche indirizzo già nel formato bbcode il primo ciclo lo ritrasforma in bbcode... hmm devo lavorarci ancora.

    Nessuno ha qualche altra idea ?
    SGr33n

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.