2015-02-12 2 views
-2

Я уже давно пинаю себя с регулярным выражением и не могу найти правильное решение. Я пытался преобразовать строку, используя Regex.Replace() в C#, который должен PREPEND от 0 до существующей строки, если длина меньше 5, то преобразование может быть следоватьПреобразование строки с использованием Regex C#

Input String ----------- Output String 
12345  ----------- 12345 
123   ----------- 0
123456  ----------- 123456 

любая помощь будет оценена

+0

Являются ли они фактическими входными строками или просто номерами, содержащимися в более крупном блоке текста? – Rhumborl

+0

это должно быть 'Regex'? если не попробовать это: http://stackoverflow.com/questions/3122677/add-zero-padding-to-a-string –

+0

Ребята, это должно быть Regex ... и '-' не включено в только что использованный вход он для форматирования –

ответ

0

Вам не нужны какие-либо регулярные выражения

if(str.Length < 5){ 
    for(var i = 0; i < 5 - str.length; i++) 
     str = "0" + str; 
} 

выше все, что вам нужно. То, что вы делаете, это если длина входной строки меньше 5, вы просто вычитаете и зацикливаете, добавляя их.

+0

Это должно быть регулярное выражение –

+0

@MirzaTalha Почему? Зачем устанавливать искусственные ограничения на решение? – mason

+0

@mason, потому что я не хочу менять свой код ... это приведет к повторному развертыванию существующего приложения. –

2

Вы можете использовать String.PadLeft: "1234".PadLeft(5, '0')

+0

не должен быть '' 1234 ".PadLeft (5, '0')' –

+0

Какой бы номер он ни пожелал;) – Gerino

+0

I возьмите вашу точку зрения, но, OP заявил «.... если длина меньше 5». (Я думаю, что SO делает педант из меня!):) –

1

Это может быть как

var outputString = Regex.Replace(inputString, @"\d+", n => n.Value.PadLeft(5, '0')); 

но вы действительно не нужно регулярное выражение в данном случае.

+0

Regex просто перехитрил здесь. Но OP хотел, чтобы так .... :) –

+0

wow не мог разобраться без помощи ур: P ... в любом случае я думаю, что не осталось никакого способа изменить код –

Смежные вопросы