регулярное выражение позволяет точку с запятой через

1

Я пытаюсь отфильтровать все, кроме букв, цифр, пробела, (,),/, - и a.. Это код, который я использую. Он выполняет некоторую фильтрацию, но позволяет использовать кавычки, точки с запятой и многое другое. Где я неправ?

filteredst = Regex.Replace(st, @"^[a-zA-Z0-9 .()/-]+", String.Empty);

Спасибо за ваше время.

Теги:

1 ответ

2
Лучший ответ

Вам нужно поместить оператор отрицания внутри своего класса вместо того, чтобы применять его как начало привязки строки.

Regex.Replace(st, @"[^a-zA-Z0-9 .()/-]+", String.Empty);

Пример:

String s = @"foo/bar ''''(baz.) """"12-34;:;;!%$@";
String r = Regex.Replace(s, @"[^a-zA-Z0-9 .()/-]+", String.Empty);
Console.WriteLine(r); //=> "foo/bar (baz.) 12-34"
  • 0
    Спасибо. Это прекрасно работает сейчас.
  • 0
    @EglCode Не за что.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню