Подтвердить что ты не робот

С# Регулярное выражение для соответствия буквам, цифрам и подчеркиванию

Я пытаюсь создать шаблон регулярного выражения в С#. Шаблон может допускать только:

  • письма
  • числа
  • подчёркивания

До сих пор мне не повезло (я плохо разбираюсь в RegEx). Вот что я пробовал до сих пор:

// Create the regular expression
string pattern = @"\w+_";
Regex regex = new Regex(pattern);

// Compare a string against the regular expression
return regex.IsMatch(stringToTest);
4b9b3361

Ответ 1

EDIT:

@"^[a-zA-Z0-9\_]+$"

или

@"^\w+$"

Ответ 2

@ "^\ш + $"

\ w соответствует любому символу слова, обозначенному цифрами, буквами и символами подчеркивания. Он поддерживает Unicode, поэтому он будет соответствовать буквам с умляутами и такими (лучше, чем пытаться перевернуть свой собственный класс символов, например [A-Za-z0-9_], который будет соответствовать только английским буквам).

The ^ в начале означает "соответствовать началу строки здесь", а $в конце означает "соответствовать концу строки здесь". Без них, например. если вы просто @@\w + ", то" @@Foo @@ "будет соответствовать, потому что он содержит один или несколько символов слова. С символами ^ и $, тогда" @@Foo @@" не будет соответствовать (что похоже на то, что вы ищете), потому что у вас нет начала строки, за которой следует одно или более слово- символы, за которыми следует конец строки.

Ответ 3

Попробуйте поэкспериментировать с чем-то вроде http://www.weitz.de/regex-coach/, который позволяет интерактивно разрабатывать регулярное выражение.

Он предназначен для Perl, но помог мне понять, как регулярное выражение работает на практике.

Ответ 4

Regex

packedasciiRegex = new Regex(@"^[!#$%&'()*+,-./:;[email protected][\]^_]*$");