Regular expression

mercoledì 08 ottobre 2014 - 12.16

memmo77 Profilo | Expert

Di nuovo qui con un nuovo questito aulle espressioni regolari, ormai sono un esperto (... scherzo ovviamente). Mi chiedevo se potesse fare al caso mio in questo esempio:

000091220001143000015000320111847 0000000000000000000000000000000000000000000

Di questo record so che il primo campo è lungo 5 caratteri, quindi il valore sarà (00009) e che la lunghezza del suo valore torna da DB ed è il valore associato ad esso, per esempio 3 caratteri quindi = (122) e cosi via scorrendo tutto il record in "orizzontale"
(00011)(43)
(00001)(500)
(03201)(11847)
fino ad arrivare all'ultimo campo:
(00000) nel quale dovrei "uscire".

Se avessi una formula del tipo:

[00009] = 122 and [03201] = 11847 allora prendi il record, come potrei risolverlo attraverso un'espressione regolare? L'espressione regolare, può essere parametrizzata e quindi creata in dinamico magari prendendo quei parametri (la lunghezza dei valori) da un database?

Non so se mi sono spiegato a sufficienza
Grazie mille!
Ciao


luigidibiasi Profilo | Guru

Non si capisce bene cosa vuoi fare.
Ti conviene impostare bene il problema.


Luigi Di Biasi

http://www.dibiasi.it/
http://www.luigidibiasi.it
http://yadamp.unisa.it/
http://yadamp.unisa.it/grimd
http://www.cilentiamoci.it

0v3rCl0ck Profilo | Guru

le regular expression le puoi formare come vuoi, anche dinamicamente, sono semplici stringhe quindi puoi crearle dinamicamente, e fare qualcosa tipo:

var source = "il tuo documento / riga da parsare"; var dim1 = 122; var dim2 = 43; var regex = @"\d{5}" + dim1 + @"\d{5}" + dim2; // ecc.... var match = Regex.Match(source, regex); if (match.Success) { // match.Value }


Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5