Регулярное выражение C # для соответствия букв, цифр и подчеркивания - PullRequest
22 голосов
/ 20 мая 2009

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

  • буквы
  • номер
  • подчеркивает

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

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

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

Ответы [ 4 ]

33 голосов
/ 20 мая 2009

РЕДАКТИРОВАТЬ:

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

или

@"^\w+$"
20 голосов
/ 20 мая 2009

@ "^ \ ш + $"

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

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

3 голосов
/ 20 мая 2009

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

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

0 голосов
/ 08 сентября 2014

Regex

packedasciiRegex = new Regex(@"^[!#$%&'()*+,-./:;?@[\]^_]*$");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...