2013-05-05 2 views
0

Мне нужно проверить правильность кодового имени.Функция C# 4.0 для проверки первых четырех символов в строке

Итак, моя строка может иметь значения, как показано ниже:

String test = "C000. ", "C010. ", "C020. ", "C030. ", "CA00. ","C0B0. ","C00C. " 

Так что моя функция должна проверить ниже условий:

  1. Он должен начать с C
  2. После этого следующие 3 символов должны быть числовым до .
  3. Отдых это может быть что угодно.

В приведенных выше строковых значениях допустимы только ["C000.", "C010.", "C020.", "C030."].

EDIT:

Ниже приведен код, я попробовал:

if (nameObject.Title.StartsWith(String.Format("^[C][0-9]{3}$",nameObject.Title))) 
+4

Это звучит подходящее для обычного выражения ... что вы пробовали и как оно ушло? –

+0

Вы намеренно избегаете регулярного выражения? –

+0

, даже если вы избегаете регулярного выражения, вы можете получить доступ к символам индексатором args, как массив, и оценить оттуда – smartcaveman

ответ

2

Я хотел бы предложить регулярное выражение, например (списано в верхней части головы может потребоваться работа):

string s = "C030."; 
Regex reg = new Regex("C[0-9]{3,3}\\."); 
bool isMatch = reg.IsMatch(s); 
+1

Вы можете сократить значение RegEx до ''^C \ d {3} \ .. * "' (сверху моей головы). Это должно (идеально) соответствовать C, за которым следуют 3 числа и период в начале строки. – Tim

+0

@Tim, мне нужно проверить вышеуказанное условие до начала периода не с начала строки –

+0

@ManojSingh - '^' привязывает RegEx к началу строки, с которой вы используете RegEx, а не к началу выражения. Исходя из вашего вопроса (** сначала ** четыре символа строки), вы должны использовать '^'. – Tim

0

Это регулярное выражение должно сделать трюк:

Regex.IsMatch(input, @"C[0-9]{3}\..*") 
0

Отъезд http://www.techotopia.com/index.php/Working_with_Strings_in_C_Sharp для быстрого обучения (помимо прочего) индивидуального доступа к строковым элементам, чтобы вы могли проверить каждый элемент по вашим критериям. Если вы считаете, что ваши критерии могут измениться, использование регулярных выражений даст вам максимальную гибкость (но более интенсивное время работы, чем обычная оценка элементарных элементов). В вашем случае это может быть излишним, ИМХО.

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