Я пытаюсь написать регулярное выражение, которое проверит, чтобы данная строка была «допустимым» именем. Строки имени извлекаются из базы данных, а затем проверяются на наличие странных символов. (Так как это для шведской системы, я все еще должен включить несколько странных символов, которые часто встречаются в шведских именах.;))
Проблема состоит в том, что это терпит неудачу каждую строку, которую это передает. Я предполагаю, что регулярное выражение не завершается правильно, и, если не удается, конец строки. Но я не могу понять, почему.
Итак, мое регулярное выражение выглядит следующим образом - и я попробовал обе строки регулярного выражения в примере:
public static bool NameCheck(string name)
{
if(name == "" || name == " " || name == null)
{
return false;
}
//Regex regex = new Regex(@"/^[a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+([---\s][a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+)+/i");
Regex regex = new Regex(@"/^[a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+([---\s][a-zåäöÅÄÖáéóúýíüÁÉÓÚÝÍÜ\-\.]+)+$/i");
return regex.IsMatch(name);
}
Есть ли кто-нибудь?
Примечание: я решаю проблему в своей системе, разбивая строки перед проверкой регулярных выражений, чтобы мне не приходилось обрабатывать пробелы, но мне любопытно, почему регулярное выражение не работает.