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">Ora.. provando con un tester molto comodo http://www.regular-expressions.info/...ptexample.htmlCodice della funzione:
[..]
objRegExp.Pattern = "<span style=""font-size:([^px""]+)px"">([^<\/span]+)<\/span>"
argStrText = objRegExp.Replace(argStrText, "[ size=$1]$2[/size]")
[..]
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:
Il risultato?Nuovo Codice della funzione:
[..]
objRegExp.Pattern = "<span style=""font-size:([^px""]+)px"">([^<\/span>]+)"
argStrText = objRegExp.Replace(argStrText, "[ size=$1]$2[/size]")
[..]
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



[^px""]+)px"">([^<\/span]+)
Rispondi quotando