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

    Problema Reg Exp (sintassi corretta, risultato no..)

    NB: Ho esagerato colorando le variabili ed i match corrispondenti.. per semplificare e perchè magari così mi rispondete di più
    NBB: ho aggiunto uno spazio tra la parentesi quadra e size] alfine di non far interpretare dal forum il codice.

    Ho un problema con le espressioni regolari.. che non capisco.

    Devo fare una sostituzione da un particolare codice html al corrisponde BBCode: nessun problema eccetto che per questa:
    Testo:
    <span style="font-size:10px">
    Codice della funzione:
    [..]
    objRegExp.Pattern = "<span style=""font-size:([^px""]+)px"">([^<\/span]+)<\/span>"
    argStrText = objRegExp.Replace(argStrText, "[ size=$1]$2[/size]")

    [..]
    Ora.. provando con un tester molto comodo http://www.regular-expressions.info/...ptexample.html

    Ho verificato che il match effettivamente non c'è (anche se non capisco il perchè)..
    In particolare, trasformando il pattern in
    <span style=""font-size[^px""]+)px"">([^<\/span]+)
    (Ovvero eliminando il corsivo del codice: il tag di chiusura), il match c'è.. :master:

    Ok.. allora trasforma la funzione Asp in:
    Nuovo Codice della funzione:
    [..]
    objRegExp.Pattern = "<span style=""font-size:([^px""]+)px"">([^<\/span>]+)"
    argStrText = objRegExp.Replace(argStrText, "[ size=$1]$2[/size]")
    [..]
    Il risultato?
    Una schifezza:
    anche provando con il tester di sopra l'esito è
    [ size=10]Seco[/size]ndo size 10</span>

    Anzichè dell'atteso
    [ size=10]Secondo size 10[/size]


    Sapete darmi una mano nel capire perchè avviene questo replace sbagliato e la corretta espressione?
    Grazie per l'aiuto che saprete darmi,

    Riccardo

  2. #2
    oddio qui ci vorrebbe l'esperto ma non so se legge il forum ancora :P

    codice:
    pattern="<span style=""font-size: ([\d]+)px"">([\w\s\/]*)</span>"
    (dopo i due punti non c'è lo spazio, altrimenti veniva la faccina)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Ciao,
    effettivamente se il testo è [ size=10]Secondo size 10[/size] funziona.
    Però con
    <span style="font-size:10px">Pippo ha scritto:</span>

    purtroppo no.

    infatti hai usato \w\s ovvero alfanumerici e spazi,
    mentre con [^<]* vuol dire, tutti i caratteri prima del minore "<"

    Cmq alla fine, prova che ti riprova.. mi sembra di essere riuscito con
    objRegExp.Pattern = "<span style=""font-size: ([\d]+)px"">([^<]*)</span>"
    ovvero mi fermo nel trovare i caratteri prima di minore.. senza andare oltre.

  4. #4
    ma il mio discorso era piu che altro per il numero del size :P

    cmq se cerchi bbcode sul forum trovi parecchie discussioni a riguardo, magari trovi altri spunti per quello che stai facendo :ciao:
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.