2016-09-22 7 views
0

Я пытаюсь выяснить, как фильтр с регулярным выражением следующих примерамиC# не Regex нет пробелов - символы - подчеркивающих

" test " -> no 
"test" -> yes 
"test_test" -> yes 
"test123test" -> no 

I'v пытался выяснить это с многочисленными темами здесь и REL, но я только совсем запутался и потерялся!

@"^[^a-zA-Z\s]{2-40}$" 
@"^[^\d\s]{2-40}$" 

оба пропускают через пробелы везде.

Также я хочу поместиться в фильтр подчеркивания, но просто _ не все специальные символы.

help pls, и если бы вы могли ссылаться на мою документацию, это было бы решеткой!

Благодаря

+1

Не уверен, что вам нужно. Если вам нужно сопоставить от 2 до 40 символов, которые могут содержать буквы ASCII и '_', используйте'^[a-zA-Z _] {2,40} $ ' –

+2

Почему вы не используете метод String.Trim –

+0

As для метода обрезки, это не поможет с * "test123test" -> no * –

ответ

1

Если вам нужно, чтобы соответствовать 2 до 40 символов строки, которые могут содержать ASCII буквы и _, используйте

^[a-zA-Z_]{2,40}$ 

См # декларацию regex demo

C:

string pat = @"^[a-zA-Z_]{2,40}$"; 

Подробнее с:

  • ^ - начало строки якоря
  • [a-zA-Z_]{2,40} - от 2 до 40 (как {2,40} является limiting quantifier) символами, которые являются нижайшими или заглавными буквами ASCII или _ символов (The [...] является соответствие character class конструкции только 1 символ)
  • $ - конец строки якоря
+0

Я добавил некоторые ссылки на документацию и справочные страницы. –

 Смежные вопросы

  • Нет связанных вопросов^_^