Регулярное выражение: 0-9 A-Z a-z или любой из этих '! # $% &' * + - / =? ^ _ `{|} ~ - PullRequest
3 голосов
/ 21 июня 2010

Мне нужно регулярное выражение строки myString, чтобы иметь только:

  • 0-9
  • AZ или az
  • любой из этих символов '! # $% &'* + - / =? ^ _ `{|} ~.

Это моя строка кода:

new Regex("[a-zA-Z0-9]").IsMatch(myString);

Пока у меня есть [a-zA-Z0-9], и это прекрасно работаетза первые два списка элементов.В настоящее время рву на себе волосы (и это так приятно, что я хочу сохранить их) над метасимволами и ничего не получаю.

Любая помощь будет принята с благодарностью.Благодарю.Dave

Ответы [ 4 ]

4 голосов
/ 21 июня 2010

Привет! Если вы хотите, чтобы в строке были только перечисленные символы, это очень просто. Но вам нужно сопоставить начало и конец строки

new Regex("^[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]*$").IsMatch(myString);
3 голосов
/ 21 июня 2010
"[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~.-]"

проверьте, чтобы знак минус ("-") был последним символом в последовательности []

2 голосов
/ 21 июня 2010

Мета-символы хороши в скобках, если вы избегаете значащих.Кроме того, тире ДОЛЖЕН быть последним в вашей последовательности.

new Regex("[a-zA-Z0-9'!#$%&'*+/=?^_`{|}~-]").IsMatch(myString);
1 голос
/ 21 июня 2010

Попробуйте:

var re = "[a-zA-Z0-9" +  Regex.Escape("'!#$%&'*+-/=?^_`{|}~.") + "]";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...