Храните только законные символы в тексте, используя .NET Regex - PullRequest
1 голос
/ 01 марта 2010

У меня есть список допустимых символов, и я хочу удалить все остальные символы из текста.

// my legal chars. a-Z, numbers, space, _, - and percentage
string legalChars = "[\p{L}\p{Nd}_\- %]*"

string text = "[update], Text with {illegal} chars such as: !? {}";

Я нашел много примеров удаления нелегальных символов. Я хочу сделать наоборот.

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Как насчет:

String trimmed = Regex.Replace(input, @"[^\p{L}\p{Nd}_\- %]", "");

Или:

private static readonly Regex RemovalPattern 
   = new Regex(@"[^\p{L}\p{Nd}_\- %]");

...


string trimmed = RemovalPattern.Replace(input, "");

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

0 голосов
/ 01 марта 2010

Почему бы не выполнить цикл по строке себе и проверить для каждого символа, является ли он допустимым символом, добавить символ к новой строке (например, с помощью stringbuilder)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...