Ya no tienes que indagar más en internet ya que has llegado al lugar adecuado, tenemos la respuesta que quieres sin problemas.
Solución:
Microsoft ha incorporado funciones para esto:
someString = someString.PadLeft(8, '0');
Y aquí hay un artículo sobre MSDN
Para usar una expresión regular, haga algo como esto:
string someText = "asd 123 rete";
someText = Regex.Replace(someText, @"d+", n => n.Value.PadLeft(8, '0'));
El hilo es antiguo, pero tal vez alguien lo necesite.
Nickon afirma que quiere usar expresiones regulares. ¿Por qué? No importa, tal vez sea divertido. Tuve que hacer un reemplazo en línea en SQL, por lo que algunas funciones SQL caseras que llaman a una expresión regular de C # han sido útiles.
Lo que necesitaba rellenar se parecía a esto:
abc 1.1.1
abc 1.2.1
abc 1.10.1
y yo quería:
abc 001.001.001
abc 001.002.001
abc 001.010.001
Para poder ordenarlo alfabéticamente.
La única solución hasta ahora (que encontré) fue hacer el relleno y truncar a la longitud correcta en dos pasos. No podía usar un Lambda ya que estaba en SQL y no había preparado mis funciones para eso.
//This pads any numbers and truncates it to a length of 8
var unpaddedData = "...";
var paddedData = Regex.Replace(unpaddedData , "(?<=[^d])(?d+)",
"0000000$digits");
var zeroPaddedDataOfRightLength = Regex.Replace(paddedData ,"d+(?=d8)","");
Explicaciones:
(?<=[^d])(?d+)
(?<=[^d]) Look behind for any non digit, this is needed if there are
more groups of numbers that needs to be padded
(?d+) Find the numbers and put them in a group named digits to be
used in the replacement pattern
0000000$digits Pads all the digits matches with 7 zeros
d+(?=d8) Finds all digits that are followed by at exactly 8 digits.
?= Doesn't capture the 8 digits.
Regex.Replace(...,"d+(?=d8)","")
Replaces the leading digits with nothing leaving the last 8.
Si no tiene ningún archivo adjunto a Regex, simplemente use cadenas de formato:
C # convertir int a string con ceros de relleno?
http://www.xtremedotnettalk.com/showthread.php?t=101461
Si sostienes algún reparo o capacidad de limar nuestro post puedes escribir una nota y con mucho placer lo interpretaremos.