Member 9720862 Ответов: 1

Регулярное выражение для строки не начинается со специального символа и пробела


я должен сделать регулярное выражение, которое не позволяет строке начинаться с sprecial caracter.
для exampel :
45@gf.com -правильно
@45gm.com -неправильно

как я могу это сделать ?

Что я уже пробовал:

я сделал это регулярное выражение...
строки TrNo = txtConsignor.Текст.Метод toString();
TrNo = Система.Текст.RegularExpressions.Регулярное выражение.Заменить(TrNo, "[^а-Яа-З0-9\\с]", "");
txtConsignor.Текст = TrNo.TrimStart();

Patrice T

Вы говорите что-то, а ваш код делает что-то еще.
Что вы хотите сделать со своим регулярным выражением?
вы хотите проверить строку или изменить ее ?

1 Ответов

Рейтинг:
1

OriginalGriff

То, что вы делаете, не запрещает специальные символы, а удаляет их. И это не требует, чтобы они были в самом начале!
Так что если ваша строка "@45gm.com " затем он преобразует его в 45gmcom и не говори никому, что это сделал он. Таким образом, то, что хранится (или иным образом обрабатывается), также не является действительным письмом и создает проблемы в будущем, когда уже слишком поздно его исправлять. Хуже того, он делает то же самое с вашей "правильной" строкой: "45@gf.com" становится " 45gfcom"

Что вам нужно, так это использовать его как регулярное выражение и проверить результат:

Match m = Regex.Match(trNo, "^[^a-zA-Z0-9\\s]");
if (m.Success)
    {
    ... report problem to user ...
    return;
    }