Regex behaving strangely .net

Dachampjr

New Member
I have some code which reads every row of a CSV file and if the value doesn't match the correct value, it will add it to the error list which is returned to the users screen. The problem I am having is with the regex itself.\[code\]protected void ReadData(string filePath, bool upload){ StringBuilder sb = new StringBuilder(); #region upload if (upload == true) // CSV file upload chosen { using (CsvReader csv = new CsvReader(new StreamReader(filePath), true)) // Cache CSV file to memory { int fieldCount = csv.FieldCount; // Total number of fields per row string[] headers = csv.GetFieldHeaders(); // Correct CSV headers stored in array SortedList<int, string> errorList = new SortedList<int, string>(); // This list will contain error values bool errorFlag = false; int errorCount = 0; // Check if headers are correct first before reading data if (headers[0] != "first name" || headers[1] != "last name" || headers[2] != "job title" || headers[3] != "email address" || headers[4] != "telephone number" || headers[5] != "company" || headers[6] != "research manager" || headers[7] != "user card number") { sb.Append("Headers are incorrect"); } else { while (csv.ReadNextRecord()) try { //Check csv obj data for valid values for (int i = 0; i < fieldCount; i++) { if (i == 0 || i == 1) // FirstName and LastName { if (Regex.IsMatch(csv.ToString(), "[a-zA-Z]", RegexOptions.IgnoreCase)) //REGEX letters only min of 5 char max of 20 { errorList.Add(errorCount, csv); errorCount += 1; errorFlag = true; string text = csv.ToString(); } } else if (i == 5) // Company name { string text = csv; text.Replace("&", "and"); } } if (errorFlag == true) { sb.Append("<b>" + "Number of Error: " + errorCount + "</b>"); sb.Append("<ul>"); foreach (KeyValuePair<int, string> key in errorList) { sb.Append("<li>" + key.Value + "</li>"); } } else // All validation checks equaled to false. Create User { ORCLdap.CreateUserAccount(rootLDAPPath, svcUsername, svcPassword, csv[0], csv[1], csv[2], csv[3], csv[4], csv[5], csv[7]); sb.Append("<b>New user data uploaded successfully</b>"); } }// end of try catch (Exception ex) { sb.Append(ex.ToString()); } finally { lblMessage.Text = sb.ToString(); sb.Remove(0, sb.Length); } } } #endregion\[/code\]The lblMessage.text contains this html:\[quote\] Number of Error: 4
  • David1212
  • smith
  • Nick444
  • Gowdy333
\[/quote\]When it should be 3 errors because smith doesnt contain a number. Does anyone have suggestions for this?
 
Back
Top