Spróbuj tego:
foundMatch = Regex.IsMatch(subjectString, @"^(?=.*[a-z])\w{7,15}\s*$", RegexOptions.IgnoreCase);
Czy zezwala również na używanie _
, ponieważ zezwoliłeś na to przy próbie.
Więc w zasadzie używam trzech zasad. Jeden do sprawdzenia, czy istnieje co najmniej jedna litera. Kolejny, aby sprawdzić, czy ciąg składa się wyłącznie z alfów plus _
i wreszcie akceptuję końcowe spacje i co najmniej 7 z maksimum 15 znaków alfy. Jesteś na dobrej drodze. Tak trzymać i będzie odpowiadał na pytania tutaj też :)
Podział:
"
^ # Assert position at the beginning of the string
(?= # Assert that the regex below can be matched, starting at this position (positive lookahead)
. # Match any single character that is not a line break character
* # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
[a-z] # Match a single character in the range between “a” and “z”
)
\w # Match a single character that is a “word character” (letters, digits, etc.)
{7,15} # Between 7 and 15 times, as many times as possible, giving back as needed (greedy)
\s # Match a single character that is a “whitespace character” (spaces, tabs, line breaks, etc.)
* # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
$ # Assert position at the end of the string (or before the line break at the end of the string, if any)
"
Dlaczego musisz używać jednego wyrażenia regularnego do tego? Często kilka linii kodu jest lepszych niż pojedyncze zniekształcone wyrażenie regularne. Dopuszczanie spacji końcowych wydaje się dziwne; czy w rzeczywistości są częścią nazwy użytkownika, czy też są ignorowane? Czy naprawdę chcesz traktować "fred" i "fred" jako odrębne? Czy spacje końcowe liczą się do maksymalnej długości 7-15? Czy nazwa użytkownika musi składać się co najmniej z * 7 znaków, czy też istnieje zmienna maksymalna długość, która może wynosić od 7 do 15 (i na podstawie czego)? Czym dokładnie są "znaki specjalne"? Czy "123_456" jest prawidłowe (tj. Czy podkreślenie jest liczone jako litera dla celów reguły 2)? –