2015-04-26 6 views
-3

Формат:Рег Выражение Ошибка после объединения

ТБ-String1-STRING2-летний NumericData1-NumericData1DigitAlways

Примеры в соответствии с приведенным выше форматом.

TB-testdata1-testData2-2015-65789-3

Это то, что я попытался так для

var result = Regex.Match(testData, @"\T\B-\S{2,5}\-\S{2,5}\-[\d{4}]\-\^[0-9]+$\-[\d]"); 

     if (result.Success) 
     { 
       Return match; 
     Else 
     { 
      Return noMatch; 
     } 

Это бросает исключение недопустимый аргумент.

Вот это требование.

Первые две буквы всегда «TB». Нечувствительный к регистру.

Каждый элемент, указанный выше, разделяется знаком «-».

String1 ->  любые символы от a до z. Нечувствительный к регистру. Должно быть от 2 до 5 символов.

String2  -> любые символы от a до z. Нечувствительный к регистру. Должно быть от 2 до 5 символов

Год ->  всегда должно быть 4 символа числовых данных. Это данные года. Таким образом, это должны быть только + ve числа.

NumericData1 ->  Положительные цифровые данные. Должно быть от 2 до 10 символов.

NumericData1DigitAlways ->  Всегда 1 цифровая цифровая информация только от 0 до 8.

Я пробовал каждую деталь отдельно. Это прерывается, когда я объединяю выражение вместе.

Благодарим за помощь.

+1

Как этот 'testdata1' удовлетворяет второму требованию, т. Е.' Должно быть от 2 до 5 символов. '? –

+0

, пожалуйста, укажите определение 'testData' –

+0

@GaneshaK: Пожалуйста, поставьте действительные примеры тестов. Это действительно: http://goo.gl/ogzGTJ? –

ответ

1

В соответствии с вашими условиями ваше регулярное выражение не является совершенным. Вы можете использовать

var result = Regex.Match(testData, @"[tT][bB]-([a-zA-Z]{2,5}-){2}\d{4}-\d{2,10}-[0-8]"); 

Объяснение:

  • \S (все символы, кроме пространства) должны быть изменены на [a-zA-Z] для любого характера между аз и не чувствителен к регистру
  • заканчивая \d должен быть изменен на [0-8]
  • Кроме того, вы должны удалить ^ and $ за ^[0-9]+$, так как они проверяют на начало и конец строки
+0

* Первые две буквы всегда «TB». Нечувствительный к регистру.* –

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