Member 8711310 Ответов: 3

Удалить специальный символ из текстового файла


Привет, у меня есть этот текст " & lt;set><value><name>" В файле, теперь мне нужно удалить символ "<" и " & gt;", который находится между текстом. Я пытаюсь использовать приведенный ниже код:

private void button1_Click(object sender, EventArgs e)
{
sr = new StreamReader(sam);
 textBox1.Text = sr.ReadLine();
string pattern = "\"(?=[<\"]+,)[>\"]+\"";
                string result = Regex.Replace(textBox1.Text, pattern, m => m.Value.Replace("<", " "));
                textBox2.Text = result;
sr.Close();
}

Я запутался с этим регулярным выражением и получаю тот же результат
"&ЛТ;набор&ГТ;&ЛТ;значение&ГТ;&ЛТ;имя>"
пожалуйста помочь....

3 Ответов

Рейтинг:
2

ProEnggSoft

Как видно из вашего вопроса, Вы хотите заменить "<" и ">" пробелом. Для этого можно использовать следующий код

string fileText = System.IO.File.ReadAllText(filePath);
fileText = System.Text.RegularExpressions.Regex.Replace(fileText,"(\"<\"|\">\")"," ");
System.IO.File.WriteAllText(filePath,fileText);


Рейтинг:
2

George Swan

//This method is not really applicable in this case
// But it can be used when there are a lot of non-printable characters
//that need to be removed, such as control and formatting characters
public static string CleanText(string message, char[] prohibitedCharacters)
{
   List<char> messageList = message.ToCharArray().ToList();
   messageList.RemoveAll(c => (Array.IndexOf(prohibitedCharacters, c) != -1));
   string cleanedString = string.Join(string.Empty, messageList);
    return cleanedString;
}


Graeme_Grant

Вы ответили на вопрос 5-летней давности... ты это нарочно?

George Swan

Упс, извини. Не понял. Я оставлю это, так как это может быть полезно. С наилучшими пожеланиями, Джордж.

George Swan

Теперь я вижу, что произошло. ОП обновил свой вопрос.

CHill60

Нет. Ответ был опубликован, а затем удален. Обновление было еще в 2012 году

George Swan

Ладно, спасибо. В любом случае, была какая-то активность, которая заставила вопрос пройти через мой "активный" фильтр.

Рейтинг:
2

Ganesan Senthilvel

Вы можете очистить специальные символы с помощью приведенной ниже настраиваемой функции как:

private static string GetCleanString (string src)
{
    int i = 0;
    while (i < src.Length)
    {
        if (src[i] < 32 || src[i] > 127)
        {
            int pos = CHAR_REPLACE_SRC.IndexOf(src[i]);
            if (pos >= 0)
                src = src.Replace(CHAR_REPLACE_SRC[pos], CHAR_REPLACE_DST[pos]);
            else
                src = src.Remove(i, 1);
        }
        else
            i++;
    }
    return src.Replace("\"", "").Replace("?", "").Replace(":", "").Replace("&", "_").Replace("\\", "_").Replace("/", "_");
}