2015-10-20 2 views
-8

У меня есть строка, которая отправляется нашими клиентами из приложения, на котором я не могу поставить проверку на их конце, чтобы ограничить отправку этих строк. Итак, я пытаюсь написать функцию C#, чтобы разбить строку на пару значений ключа/убедиться, что строка соответствует формату, так что разбить на значение ключа будет легко.Разделить нерегулярную строку на пары с ключом

Вот мои примеры (ABCD является общим здесь) и ответ я должен быть в форме ниже для примеров

ABCD 1234 должен быть -> ABCD-1234

ABCD 1234 (два или Theree пространства между ними) должны быть ABCD-1234

ABCD 1234 должен быть (начинается с пробела) -> ABCD-1234

ABCD XX1234 должно быть -> ABCD-XX1234

ABCD - Z1234 должно быть -> ABCD-Z1234

ABCDTE ST QA1234 должно быть -> ABCD-QA1234

ABCD 1234 ABCD-1234

Кроме того, если это возможно, я это будет также интегрировано в ту же функцию для вышеуказанного.

ABCDE-GHI491803 Должно быть WXYZ-491803

ABCDEFGH CT542021 Должно быть WXYZ-CT542021

+2

У вас есть требования. Идите, реализуйте их. Какой у Вас вопрос? – Blorgbeard

+0

Не могли бы вы отредактировать свое сообщение, чтобы включить: (1) четкое правило о том, как преобразовать любой ввод в желаемый результат и (2) вопрос? См. [Написание идеального вопроса] (http://tinyurl.com/stack-hints). – HABO

+0

В противном случае вам ответят только пустые голоса. – niksofteng

ответ

1

для некоторых из ваших требований вы можете написать метод расширения для строки, например:

public static class StringExtensions 
{ 
    public static string FormatMyString(this string input) 
    { 
     input = Regex.Replace(input, @"-+", " "); 
     return Regex.Replace(input, @"\s+", " ").Replace(" ", "-"); 
    } 
} 

то в вашем коде вы можете использовать его следующим образом:

var formatted = "ABCD-- 1234".FormatMyString(); 

, но заменяя буквы ... Я не вижу там никакой логики ... сколько пива у вас было?

+0

хорошо сыграл BeardedMan. – mcfea

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